Как преобразовать T-SQL синтаксис, который написанный CASE WHEN
, чтобы PIVOT
или window functions
с помощью следующего кода:Как я могу преобразовать T-SQL синтаксиса, который написал на случай, когда для поворота или функции окна
SELECT
T.TaskID,
SUM(CASE WHEN T.LogDate<'2016-02-04' AND T.TaskStatusID=2 THEN ISNULL(DA_CHILD.Value,0)*(T.DoneScore/100) ELSE 0 END) PreAmount,
SUM(CASE WHEN T.LogDate>='2016-02-04' AND T.LogDate<='2017-02-04' AND T.TaskStatusID=2 THEN ISNULL(DA_CHILD.Value,0)*(T.DoneScore/100) ELSE 0 END) CurAmount,
SUM(CASE WHEN T.LogDate>'2017-02-04' AND T.TaskStatusID=2 THEN ISNULL(DA_CHILD.Value,0)*(T.DoneScore/100) ELSE 0 END) AfterAmount
FROM
NetTasks$ T
INNER JOIN NetDeviceActions DA ON DA.DeviceActionID=T.DeviceActionID
INNER JOIN NetActionParents AP ON AP.ParentID=DA.ActionID
INNER JOIN NetDeviceActions DA_CHILD ON DA_CHILD.ActionID=AP.ChildID AND
DA_CHILD.DeviceID=DA.DeviceID AND
DA_CHILD.ContractInfoID=DA.ContractInfoID
WHERE
T.ParentTaskID = 0 AND
T.FinishDate<='2017-01-07' AND
DA.ContractInfoID=15
GROUP BY
T.TaskID, T.DoneScore,T.FinishDate
Это мой результат:
TaskID PreAmount CurAmount AfterAmount
686170 0 0 0
655768 NULL 0 0
734520 0 NULL 0
682661 0 NULL 0
Предоставьте выбранные данные, которые вы хотите показать и что возвращает ваш запрос. так что люди могут легко и быстро ответить на ваш вопрос. –
Сэмплированные данные не важны. Я хочу выяснить, есть ли способ включить функции поворота или окна. –
Примеры данных важны, так как я не понимаю, как выглядят ваши данные и каков ваш желаемый результат. Ваш вопрос слишком широк, поскольку он стоит, пожалуйста, отредактируйте его. – Tanner