Forum Discussion
Next higher value
Hey vissvess ,
I recommend avoiding a calculated column as every solution is creating a lot of stress to the underlying database, due to the necessary scanning of columns.
Instead I would create dedicated view in the source database to create the column:
SELECT
[Sequence]
, [ActualEndDateTime]
, [LOS]
, LEAD([ActualEndDateTime], 1) over(partition by [LOS] , [Sequence] order by [ActualEndDateTime]) as nextDateTime
FROM [develop].[dbo].[Table_3]
The result of the above query creates this result:
Hopefully, this provides some additional ideas even if it is not a direct answer.
Regards,
Tom
Thansk Tom Martens,
I tried the same way.
But the hurdle is that I only have read access with the database.
So, I thought to develop a native query where I can push the transformation to the SQL back during querying.
Thus, I developed a sql code as follows.
IF OBJECT_ID('TEMPDB.DBO.#MINIKANBANJOB','U') IS NOT NULL
DROP TABLE #MINIKANBANJOB;
SELECT TOP(100) KANBAN
,CASE
WHEN PLANACTIVITYNAME LIKE '%1A%' THEN 'Line 1A'
WHEN PLANACTIVITYNAME LIKE '%1B%' THEN 'Line 1B'
WHEN PLANACTIVITYNAME LIKE '%1C%' THEN 'Line 1C'
WHEN PLANACTIVITYNAME LIKE '%1D%' THEN 'Line 1D'
WHEN PLANACTIVITYNAME LIKE '%2A%' THEN 'Line 2A'
WHEN PLANACTIVITYNAME LIKE '%2B%' THEN 'Line 2B'
WHEN PLANACTIVITYNAME LIKE '%3A%' THEN 'Line 3A'
WHEN PLANACTIVITYNAME LIKE '%3B%' THEN 'Line 3B'
WHEN PLANACTIVITYNAME LIKE '%2N%' THEN 'Line 2B'
ELSE NULL
END AS 'LOS'
,PLANACTIVITYNAME
,CASE
WHEN PLANACTIVITYNAME LIKE '%INDUCT%' OR PLANACTIVITYNAME LIKE '%Z1%' THEN 20
WHEN PLANACTIVITYNAME LIKE '%EOL%' THEN 100
WHEN PLANACTIVITYNAME LIKE '%BOXING%' THEN 90
WHEN PLANACTIVITYNAME LIKE '%HIPOT%' THEN 80
WHEN PLANACTIVITYNAME LIKE '%BURN%' AND NOT PLANACTIVITYNAME LIKE '%CFI%' THEN 50
WHEN PLANACTIVITYNAME LIKE 'L1_-DT-Z5'
OR PLANACTIVITYNAME LIKE '%WKS-Z7'
OR PLANACTIVITYNAME LIKE 'L2_-DT-Z6'
OR PLANACTIVITYNAME LIKE 'L3_-AIO-Z7'
OR PLANACTIVITYNAME LIKE 'L2_-AIO-Z8'
OR PLANACTIVITYNAME LIKE 'L2B-G-%-Z5'
OR PLANACTIVITYNAME LIKE '%SRV-Z7'
OR PLANACTIVITYNAME LIKE '%NB-Z8'
OR PLANACTIVITYNAME LIKE 'L2_-NB-Z8'
THEN 30
ELSE NULL
END AS 'UNITSTATUS'
,ACTUALENDDATETIME
INTO #MINIKANBANJOB
FROM KANBANJOB
ORDER BY ACTUALENDDATETIME DESC
SELECT KANBAN
,ACTUALENDDATETIME
,PLANACTIVITYNAME AS 'STAGES'
,(SELECT MIN(ACTUALENDDATETIME) as 'Test123456' FROM #MINIKANBANJOB SUB WHERE SUB.LOS = MAIN.LOS AND SUB.UNITSTATUS = MAIN.UNITSTATUS AND SUB.ACTUALENDDATETIME > MAIN.ACTUALENDDATETIME) AS 'NEXTOUTPUT'
,LOS
,UNITSTATUS
FROM #MINIKANBANJOB MAIN
ORDER BY ACTUALENDDATETIME DESC
But, loading this query as source for direct query results in a 'microsoft sql incorrect syntax near the keyword 'if'. incorrect syntax near ')'' error.
Any one can help?
- Anonymous6 years agoNot applicableGet rid of the syntactic error and you'll be OK.
Best
D- vissvess6 years agoHelper V
No there is no syntatic error. The same query when executed in SSMS fetches the desired table.
Even when it is loaded to Power BI via import mode, It loads correctly.Only when using direct query, I am getting this error.
Please help.!
- Anonymous6 years agoNot applicableThen maybe there are some restrictions on what you can write when in the DQ mode. You should check the documentation.
Best
D