На SQL, что было бы лучшим способом сделать формулы? - PullRequest
0 голосов
/ 05 октября 2018

У меня следующая структура

Структура столбцов

Столбцы даты также содержат часы.Мне нужно рассчитать время между началом и датой для одного и того же номера дела.

Пример, если в случае 1 есть 2 случая, мне нужно рассчитать от даты начала первого до даты окончания второго идобавьте это в другой столбец как «фактическое фиксированное время».

Дело в том, что может быть 2, 10 или 20 или более подслучаев.

Есть мысли?

1 Ответ

0 голосов
/ 05 октября 2018

Вы захотите использовать DATEDIFF в сочетании с GROUP BY

SELECT DATEDIFF(hour, MIN(start_date), MAX(end_date)) as ActualFixedTime FROM YourTable GROUP BY Casenumber

Это даст вам фактическое фиксированное время для каждого случая.Чтобы отобразить этот результат для каждой строки ваших подслучаев, вы присоединяетесь к нему, когда выбираете свою таблицу:

SELECT YourTable.*, FixedTimes.ActualFixedTime
FROM YourTable
INNER JOIN (SELECT Casenumber,
                DATEDIFF(hour, MIN(start_date), MAX(end_date)) AS ActualFixedTime
            FROM YourTable
            GROUP BY Casenumber)
    AS FixedTimes
    ON YourTable.Casenumber = FixedTimes.Casenumber
...