【发布时间】:2019-09-07 10:41:41
【问题描述】:
目前正在处理来自 OpenEdge 进度数据库的一些 SQL 脚本。目前,我正在尝试根据事件是 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
【问题讨论】:
-
你可以使用Coalesce功能参考这个链接https://www.1keydata.com/sql/sql-coalesce.html
标签: sql excel openedge progress-db ms-query