cast when subtring column then function digit query - function

CASE WHEN Substr(KEY_1,4,16) THEN F_CHECK_DIGIT(KEY_1) ELSE KEY_1 END AS COLLATERAL_ID
So guys i want to try substring some column from another column (different table) and then i want to enter the function digit which is temporary macro table from another column (different table) to destination column which is empty.
when i trying to do that an error was notify at the bottom of query editor did i miss something or maybe is the worng query? [the query and the error notification](https://i.stack.imgur.com/RinGp.png)

Related

Report Server (ssrs): retrieve column name by query

Would you help me, please, to retrieve column name by query.
In the report I want to show columns by condition.
I created a parameter #cols, which contains the list of column names (multiple values are allowed).
In column visibility/show or hide based on expression I added:
=IIF(InStr(Join(Parameters!cols.Value, “,”), “My_col_name”)=0, true, false)
This works perfectly, but for each column I should insert in the row above the original column instead "My_col_name".
Since my report has hundreeds of columns, it looks annoyying.
Is there a method to simplify this task? E.g. to insert instead "My_col_name" some expression, which shows selected column name?
Thank you.

Alter Large Block of Records with Data Macro

Several hundred records were incorrectly entered into a table in my Access Database.
A particular ID number includes a two digit leading code that designates the state that record is from; so 01-24586 is a record from the ACT, and 02-55719 is a record from NSW. The incorrect entries have these two switched. I need to replace the first two digits of these records' IDs with the correct code.
To do this, I've tried to write a Named Data Macro that I can call from a regular macro object (so I can double click it in the navigation pane). I've done that, but it doesn't seem to work. My Data Macro (just one of the State fixes) looks like this:
If [State]="NSW" Then
For Each Record In tblCustomer
Where Condition =[State]="NSW"
Alias NSWCust
EditRecord
Alias NSWCust
SetField
Name MyobID
Value = "02-" & Right([MyobID],5)
End EditRecord
End If
When I call it from the other macro, using RunDataMacro it gives me error 3709.
Is this a bad way to go about fixing this? What's wrong with my execution?
Data macros are intended to be used as "triggers" (perform an action when a specific event occurs.
In order to update data, you should use an update query.
Statement would look like this:
UPDATE tblCustomer
SET MyobID = "02-" & Right([MyobID],5)
WHERE [State] = "NSW"

SSRS expression with missing column not working

I'm trying to create an expression with a missing column. as in the column is not returned from the query but does exist in the list of fields.
The problem I'm having is that every time I do an expression and one of the parameters is from a field that doesn't have a return from query the query fails silently. the following example is looking at a field "test" that, as I said, exists in the list of fields but is not returned from the query, how can I have this is statement send "alert"??
=IIF(Fields!test.IsMissing,"alert",Fields!test.Value)
The reason that I don't return the field is that the columns are dependent on the parameters I enter in the procedure (so they could be used or not depending on what the user is asking)
Thank you
From reading your question I think, you have dynamic columns which will be returns conditionally
So what you should do is,
1) Create the parameter in the parameter list and set it as the internal and assign the field value to that parameter, suppose the parameter is dyanmicfiledvalue
2) Change your expression as,
=IIF(IsNothing(Parameters!dyanmicfiledvalue.value),"alert", Parameters!dyanmicfiledvalue.value )
that should do it. Let me know in case of issues.
Or if you want to check null or empty value for that column just change as
=IIF(IsNothing(Fields!test.value),"alert",Fields!test.value)

send records as weblinks through send mail task in SSIS?

i have a table with two columns and two records as follows.
TypeOfReport Links
InvalidRecords http://ReportInvalid
MissingRecords http://ReportMissing
I have a package with execute sql task selecting * from the table above, full result set selected and an object variable created, it works good. but now when i connect it with send mail task, i wanna send email like
Subject : Reports On InvalidRecords and MissingRecords
MessageText : Links for the Reports : http://ReportInvalid
: http://ReportMissing
Can somebone help me with it.
NOTE : i tried creating user and object variable but its good if i have only one record in table. i tried creating 2 user and 2 object variables as well but didnt work.
Thanks
Your Execute SQL Task is returning multiple rows and you're right to have the results go to a variable of object type. Now, it can be a challenging getting values from multiple rows of data into variable values in SSIS, but it's not impossible. However, for your situation, you may want to alter your SQL statement to return one row.
Start by creating two variables, one for the invalid-records link and one for the missing-records link. Edit your Execute SQL Task and replace your SQL statement with the following:
SELECT MAX(CASE TypeOfReport WHEN 'InvalidRecords'
THEN links ELSE NULL END) AS InvalidRecords,
MAX(CASE TypeOfReport WHEN 'MissingRecords'
THEN links ELSE NULL END) AS MissingRecords
FROM mytable
This query will return one row with two columns, one for each link. This is known as a pivot (you could use the PIVOT clause to produce the same results.) The big advantage for you is that there's one row.
Also, change the ResultSet property to Single row.
Select the Result Set tab and add two items to the list. The first row should have 0 for Result Name and your InvalidRecords variable for Variable Name. The second row should have 1 for the Result Name and your MissingRecords variable for Variable Name. That should get your link values into variables and ready for your email task.

Access: Data Type Mismatch using boolean function in query criteria

I have a VBA function IsValidEmail() that returns a boolean. I have a query that calls this function: Expr1: IsValidEmail([E-Mail]). When I run the query, it shows -1 for True and 0 for False. So far so good.
Now I want to filter the query to only show invalid emails. I'm using the Query Designer, so I just add a value of 0 to the Criteria field. This gives me a "Data Type Mismatch" error. So does "0" (with quotes) and False. How am I supposed to specify criteria for a boolean function?
For a boolean column, "0" will definitely give you the "Data type mismatch in criteria expression" error. However, 0 or False without quotes should work. I don't understand why they are generating the same error.
See if you can produce a working query by editing the SQL directly. Create a new query, switch to SQL View and paste in this statement (replacing YourTableName with the name of your table).
SELECT IsValidEmail([E-Mail]) AS valid_email
FROM YourTableName
WHERE IsValidEmail([E-Mail]) = False;
Will your query run without error when you create it that way?
Update: Since that query also produced the same error, all I can suggest is trying this one without any criteria.
SELECT
IsValidEmail([E-Mail]) AS valid_email,
TypeName(IsValidEmail([E-Mail])) AS type_of_valid_email
FROM YourTableName;
However, that seems like a long shot because you already told us your earlier attempt without criteria ran without error. If this doesn't identify the problem, would you consider emailing me a stripped down copy of your database? Let me know if you're interested and I'll give you my email address.
The error was caused by the fact that some of the records in my table have a null E-Mail. My query has a where condition to exclude null E-Mail records, so when I ran it with no condition on the IsValidEmail column my function was only called for records with a non-null E-Mail. However, when I added the condition on IsValidEmail it called the function for every record, and the error came from trying to pass null to a function expecting a string.
Another way to say all that:
SELECT [E-Mail],
IsValidEmail([E-Mail]) <--Executed only for rows matching where clause
FROM Contacts
WHERE IsValidEmail([E-Mail]) = False; <-- Gets executed for all rows
Changing my query expression from IsValidEmail([E-Mail]) to IsValidEmail(nz([E-Mail],"X")) resolved the issue.