Как получить несколько дат из таблицы версий системы - PullRequest
2 голосов
/ 09 июля 2019

У меня есть системная версионная таблица с именем Archiv.liste, и я хочу сравнить 12 дат с суммой прибыли.

Есть ли лучший способ сделать это, чем через UNION?

SELECT BranchCO AS Branch --> BAB01
      ,CAST('02.18.2019' AS DATE) AS Stichtag
      ,MONTH(ServiceDate) AS Leistungsmonat
      ,SUM(Profit) AS ProfitSum
FROM archiv.Liste FOR SYSTEM_TIME AS OF '02.18.2019' TL 
GROUP BY  BranchCO,MONTH(ServiceDate)
UNION 
SELECT BranchCO AS Branch --> BAB02
      ,CAST('03.18.2019' AS DATE) AS Stichtag
      ,MONTH(ServiceDate) AS Leistungsmonat
      ,SUM(Profit) AS ProfitSum
FROM archiv.Liste FOR SYSTEM_TIME AS OF '03.18.2019' TL 
GROUP BY  BranchCO,MONTH(ServiceDate)
UNION 
SELECT BranchCO AS Branch --> BAB03
      ,CAST('04.15.2019' AS DATE) AS Stichtag
      ,MONTH(ServiceDate) AS Leistungsmonat
      ,SUM(Profit) AS ProfitSum
FROM archiv.Liste FOR SYSTEM_TIME AS OF '04.15.2019' TL 
GROUP BY  BranchCO,MONTH(ServiceDate)

Есть ли такая команда:

SELECT * FROM archiv.Liste FOR SYSTEM_TIME AS IN ('02.18.2019','03.18.2019','04.15.2019')

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

Возможно, вы сможете сделать фильтр даты после получения всех версий строк из таблицы Temporal и History (по ключевому слову ALL). Вы можете изменить столбцы StartTime и EndTime, указав имена столбцов начала и конца периода.

SELECT 
      BranchCO AS Branch --> BAB01
     ,CAST(StartTime AS DATE) AS Stichtag
     ,MONTH(ServiceDate) AS Leistungsmonat
     ,SUM(Profit) AS ProfitSum
FROM archiv.Liste
FOR SYSTEM_TIME ALL
WHERE 
    (StartTime <= '02.18.2019' AND EndTime > '02.18.2019')
    OR  (StartTime <= '03.18.2019' AND EndTime > '03.18.2019')
    OR  (StartTime <= '04.15.2019' AND EndTime > '04.15.2019')
0 голосов
/ 09 июля 2019

Попробуйте этот запрос: SELECT * FROM archiv.Liste ДЛЯ SYSTEM_TIME, СОДЕРЖАЩЕЙСЯ В ('02 .18.2019 ',' 03.18.2019 ',' 04.15.2019 ')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...