How to Add a conditional expression in Azure Dataflow Window Transformation - azure

How do I add an iif conditional expression in a window function under window Columns. I want to do the following:
iif(ID>5,(lag(op_hours,0)+lag(op_hours,1)+lag(op_hours,2)+lag(op_hours,3)+lag(op_hours,4)+lag(op_hours,5))/6,toDouble(4455))
under WindowColumns. However, the expression builder is throwing an error: "Columns should be wrapped within aggregate/Window functions" at ID>5.
Any help would be appreciated.

How to Add a conditional expression in Azure Dataflow Window Transformation
In windows transformation we cannot give column name as single entity We have to pass it with the Aggregate function or Windows function
I tried to reproduce your scenario and getting similar error:
To work around that I performed below steps:
First, I created column as Net Sales and gave the Lag expression to the windows Transformation To get the exact value:
It gave the output with Lag expression to all the values for particular window.
After I created a derived column with the same name and passed the conditional statement as
iif(Id>5,{ Net sales },toDouble(4455))
It is updating the Net Sales column values which have Id greater than 5 to decimal of 4455.
Output:

Related

Query with switch function requests parameter value [duplicate]

This question already has answers here:
Why does this query require a parameter?
(2 answers)
Closed 3 years ago.
Background: Excel worksheet as front end to an Access database. Excel contains VBA code and uses ADODB to move values into and out of the tables in Access.
One column is a composite value which describes a complex priority relationship. One digit for priority level (1-6), one letter for more granular level (A-C), and a type of project (Safety, Security, Enviro, etc.) The values look like "2B - Maint.", "2A - ProcCntl"
I need to sort the results of a select * query in different ways. Sometimes with the typical Alpha sort which would list 1A values before 1B before 4C. Other times I need to sort all the Safety as a group, Maint. as another, etc. A simple alpha sort on the project type doesn't work because the manager wants a specific order.
I am using the Switch function to assign the order. I have found a couple of ways to make this work in Access but they all ask for a parameter value when I run the query. Entering a blank value gets the desired result. Moving the query into the VBA of Excel returns an error complaining of an empty parameter.
Here is one of the "working" queries:
SELECT *, Mid([Priority],6,2) AS ProjClass,
Switch(ProjClass="Sa",1,ProjClass="En",2,ProjClass="Se",3,ProjClass="6S",4,ProjClass="Qu",5,ProjClass="Pr",6,ProjClass="Ma",7,ProjClass="Bu",8)
AS [FirstSort]
FROM tblProjects
ORDER BY [FirstSort] ASC, [Priority] ASC;
When I run this through the VBA I get
Run-time error "No value given for one or more required parameters."
When I run it in Access a "Enter Parameter Value" dialog opens asking for FirstSort. I click through and see the result is correctly sorted.
The root question: Why is Access seeing FirstSort as a parameter and not a field name?
I think I need to understand that before I can fix the VBA issue.
More research has revealed yet another Access quirk: The problem is that MS Access does not allow AS clauses in the ORDER BY clause.
So a little experimentation lead me to change the ORDER BY clause to ORDER BY 3 ASC, [Priority] ASC;
I chose the three because it is the third field expression in the query. It works but it would be great if someone could clarify the specific rule that makes it work.
Hat tip: Why does this query require a parameter? and onedaywhen's answer.
ProjClass is a field created during execution of the query. Before that when the SQL engine is determining an execution plan for the query it will not recognize that field name so assumes it is parameter. SORT is done at the end of the query and by that time the engine knows which is the third field.
An alternative is to create another table called something like tblPriority with 2 columns ProjectClass and SortOrder
ProjClass SortOrder
Sa 1
En 2
Se 3
6S 4
Qu 5
Pr 6
Ma 7
Bu 8
and use a JOIN
SELECT A.* FROM tblProjects AS A
LEFT JOIN tblPriority as B
ON B.ProjClass = Mid(A.Priority,6,2)
ORDER BY SortOrder

Transform data types in parts of a column

I am retrieving data through Power Query from an Oracle DB live to an Excel workbook. In PQ, under the "Transform" tab, there is a function to change the data type of a column, that I use to get all the decimal numbers displayed. In the M-code the function is called TransformColumnTypes. However I have some strings in the data that I cannot change to decimal number and produce an error. Is there a way to exclude these? Because the function takes the whole column at the moment.
Before applying function
Function producing error
Code
I don't think so. If you have multiple types within a column, text is the only one that doesn't produce errors.
But if it is only the first row like in your image, promoting it to header before setting the column type will fix the issue.

Changing portlet item color scheme based off of date

I am trying to change the colors of lines displayed in my portlet based off of a date range. The following are examples of what I am trying to do.
within the last 7 days - green
greater than 7 days - red.
I have tried the following expressions :date - 7 and it does not work, I am assuming as there is not an overloaded operator to handle the subtraction between a date object and a integer. Also for the expression field, can it handle function calls? As I have also tried to use getdate() which does not work here.
Assuming you are talking about a ResultSet portlet on a Start Center, date math has historically been abysmal in this context. You would be better to write an Automation Script to support a new Function and then call your Function from an Attribute Formula. You can then do your color coded rows against the integer attribute you associated to the Formula.
The only thing I found lacking in the relevant Help and product documentation was that your script needs to return its calculation result in a variable called retval or whatever it is for Custom Condition launch points.

Logic Apps : Use Dynamic content within the Logical functions

I am trying to add a condition in Logic apps using one of the field . I have a field named score .
I want to add a condition and insert to the SQL database column named "Result".
The score returns the values from 1 to 10. I just want to check
if the value lies between 1-5 means then "Negative" if the value lies
between 5-10 means "Positive"
This is what i have done, i have used the logical functions named "if" and wrote the condition as,
if(parameters("Score")>5,"Positive","Negative") //just an example to check
But it says "The expression is invalid" , how should i correct this?
Try the below. It works for me
if(greater(parameters('score'),5) ,'Positive','Negative')

Nested IF function in excel not working

I am trying to implement an IF function for a simple pricing database where if a cell is equal to one of 3 time durations, the cell automatically generates the correct price based on length of time. Here's what I have so far based on what other examples have of nested Excel functions:
=IF(F4=12;"$60";IF(F4=6;"$40";IF(F4=3,"$30")))
My primary issue is that the second condition has a red bracket, indicating an error. If I then swap the ";" for a ",", I have the same result.
As there are only 3 conditions, I have also tried the following:
=IF(F4=12;"$60",IF(F4=6;"$40","$30")
But again I have the same issue with the bracket being red on the second condition.
Any ideas?

Resources