У меня есть таблица, в которой записаны измеренные значения в столбец [Значение] со столбцом [DateTime] для отметки времени и столбцом [TagName], чтобы показать, какое это измерение.Ниже вы можете увидеть пример его части.
DateTime TagName Value
2019-02-16 17:04:19.5550000 CT027001_01.OUT_PV 520.254638671875
2019-02-16 17:04:19.5550000 FT027001_01.OUT_PV 29.6527767181396
2019-02-16 17:04:20.7270000 CT027001_01.OUT_PV 517.07177734375
2019-02-16 17:04:20.7270000 FT027001_01.OUT_PV 29.4444446563721
2019-02-16 17:04:22.0860000 CT027001_01.OUT_PV 516.203674316406
2019-02-16 17:04:22.0860000 FT027001_01.OUT_PV 29.2013893127441
2019-02-16 17:04:23.0910000 CT027001_01.OUT_PV 515.914367675781
2019-02-16 17:04:23.0910000 FT027001_01.OUT_PV 29.0451393127441
2019-02-16 17:04:23.4770000 CT027001_01.OUT_PV 515.914367675781
2019-02-16 17:04:23.4770000 FT027001_01.OUT_PV 29.0451393127441
2019-02-16 17:04:24.4820000 CT027001_01.OUT_PV 516.782409667969
2019-02-16 17:04:24.4820000 FT027001_01.OUT_PV 28.4461803436279
2019-02-16 17:04:25.0860000 CT027001_01.OUT_PV 516.782409667969
2019-02-16 17:04:25.0860000 FT027001_01.OUT_PV 28.4461803436279
Значения записываются только при изменении значения.То, что я хочу сделать, это;Я хочу суммировать значения FT, когда значения CT больше 600 и значения FT больше 10. Я знаю, как суммировать значения с использованием метода LAG, но я не знаю, как фильтровать условия, которые я упомянул.
Я пробовал что-то вроде:
SELECT C.[DateTime], C.[TagName], C.[Value] FROM (
SELECT [DateTime]
,[TagName]
,[Value]
FROM [Runtime].[dbo].[History]
where TagName like '%CT027001%' and TagName= 'FT027001_01.OUT_PV'
AND [DateTime] > '2019-02-16' AND [DateTime] < '2019-02-17') C
WHERE C.[Value] > 10 AND C.[TagName] = 'FT027001_01.OUT_PV'
Ожидаемый результат:
TotalFlow 1500.0000