В настоящее время работает над некоторым сценарием SQL из базы данных прогресса OpenEdge. В данный момент я пытаюсь вернуть время для события, основываясь на том, было ли оно Estimated
или Actual
. Это можно определить с помощью результата в столбце. Проблема, которую я получаю, заключается в том, как работают данные, они показывают то же самое EveNumber
, но в двух строках (одна для оценочной, другая для фактической). Я хотел бы объединить эти строки в один.
Я попробовал приведенный ниже код, но я получил результат, состоящий из двух отдельных строк. Я попытался поместить случай, когда тоже в раздел Else
, но это не сработало. Ниже мой сокращенный код:
SELECT
Event_0.EveNumber
, (CASE WHEN Object_0.ObjName = '818 Artwork typeset duration' THEN TemplateRunObject_0.TroValue ELSE NULL END) AS 'Actual'
, (CASE WHEN Object_0.ObjName = '818 Artwork Estimated typeset duration' THEN TemplateRunObject_0.TroValue ELSE NULL END) AS 'Estimated'
FROM
SBS.PUB.Event Event_0
LEFT JOIN SBS.PUB.TemplateRunObject TemplateRunObject_0 ON Event_0.TemplateRunID = TemplateRunObject_0.TemplateRunID
JOIN SBS.PUB.Object Object_0 ON TemplateRunObject_0.ObjectId = Object_0.ObjectId
Оригинальное расположение данных
Evenumber Ogjname TroValue
123 818 Artwork typeset duration 15
123 818 Artwork Estimated typeset duration 30
В настоящее время результаты выглядят так:
EveNumber Actual Estimated
123 15 0
123 0 30
Как я хочу, чтобы они появились
EveNumber Actual Estimated
123 15 30