Untitled
unknown
sql
6 months ago
1.8 kB
2
Indexable
USE ITC_PCPB_ULB_UTILITY_TW; GO CREATE FUNCTION udtvf_Nitrogen_Report(@fromdate DATE, @todate DATE) RETURNS TABLE AS RETURN ( WITH NitrogenReport AS ( SELECT date, Asset, CONVERT(DECIMAL(18, 2), AVG(CycleTime)) AS [Cycle Time (Sec)], CONVERT(DECIMAL(18, 2), AVG(OutletPressure)) AS [Outlet Pressure(Bar)], CONVERT(DECIMAL(18, 2), AVG(Purity)) AS [Purity (%)] FROM ( SELECT CONVERT(DATE, time) AS date, CASE WHEN entity_id = 'ITC_PCPB_ULB_UTILITY_Nitrogen_Plant_1_Stream' THEN 'Nitrogen Plant 1' END AS Asset, CycleTime, OutletPressure, Purity FROM ( SELECT CONVERT(DATE, time) AS date, * FROM [ITC_PCPB_ULB_UTILITY_TW].[dbo].[stream] a WHERE CONVERT(DATE, a.time) BETWEEN @fromdate AND @todate AND a.entity_id LIKE '%Nitrogen%' ) AS a CROSS APPLY OPENJSON(a.field_values, '$') WITH ( CycleTime FLOAT '$.CycleTime', OutletPressure FLOAT '$.OutletPressure', Purity FLOAT '$.Purity' ) AS t ) AS final GROUP BY Asset, date ) SELECT Asset, parameters, value FROM ( SELECT * FROM NitrogenReport ) AS t UNPIVOT ( value FOR parameters IN ([Cycle Time (Sec)], [Outlet Pressure(Bar)], [Purity (%)]) ) AS unpvt ); GO
Editor is loading...
Leave a Comment