Я сложен здесь:
SELECT [RecTime], [Name],
CAST(CASE WHEN
-- <logics>
1=0 -- ???
-- </logics>
THEN 1 ELSE 0 END AS bit) AS [Value]
FROM EventIncidentsStates
GROUP BY [RecTime], [Name]
EventIncidentsStates выглядит следующим образом:
RecTime SQL Event Name Val
2011-03-02 08:36:10.047 | Alarm1002 AND Alarm1004 | Alarm1002 | doubleAlarm | 1
2011-03-02 08:36:10.047 | Alarm1002 AND Alarm1004 | Alarm1004 | doubleAlarm | 0
2011-03-02 08:36:10.047 | Alarm1002 | Alarm1002 | myalarm1002 | 1
2011-03-02 08:36:20.030 | Alarm1002 AND Alarm1004 | Alarm1002 | doubleAlarm | 1
2011-03-02 08:36:20.030 | Alarm1002 AND Alarm1004 | Alarm1004 | doubleAlarm | 0
2011-03-02 08:36:20.030 | Alarm1004 | Alarm1004 | TestIncident | 0
2011-03-02 08:36:40.050 | Alarm1002 AND Alarm1004 | Alarm1002 | doubleAlarm | 0
2011-03-02 08:36:40.050 | Alarm1002 AND Alarm1004 | Alarm1004 | doubleAlarm | 0
2011-03-02 08:36:40.050 | Alarm1004 | Alarm1004 | TestIncident | 0
Val - это значение Event, а не значение Name, значение Name, которое мне нужночтобы разобраться с логикой и группировкой SQL.
эх, дайте мне время объяснить, что это, на примере первого узла,
первое поле - RecTime, второе - Alarm1002 AND Alarm1004 это должна быть логика :), которая также может выглядеть одинаково (Alarm1002 = 1 AND Alarm1004 = 1) , не уверен, что я смогу ее использовать, doubleAlarm равно Имя , название моего сложного события с этой логикой,
даже если есть события на это время,
Alarm1002 is 1
Alarm1004 is 0
Итак [Значение] из doubleAlarm должно быть (1 И 0) = 0 ... Я знаю, что моя структура немного странная, но задача была очень сложной:)
и после того, как весь этот вопрос содержит 2 вопроса, ябыл бы рад получить ответ на любой:
- как использовать пользовательскую логику с GROUP BY
какпарсировать поле nvarchar в логику SQL, да второй вопрос вроде головной боли
Другой пример:
-- Example
SELECT [RecTime], [Name],
CAST(CASE WHEN
-- <logics>
[SQL]
-- </logics>
THEN 1 ELSE 0 END AS bit) AS [Value]
FROM EventIncidentsStates
GROUP BY [RecTime], [Name], [SQL]
-- Inital data
EventIncidentsStates -
[RecTime] [SQL] [EventName] [Value] [Name]
SomeDate (EVENT1 = 1 AND EVENT2 = 1) EVENT1 1 Some
SomeDate (EVENT1 = 1 AND EVENT2 = 1) EVENT2 0 Some
-- Out data
SomeDate Some 0