我正在尝试更新 DM_EVENT_T.date_ops_end 的NULL字段,以匹配 MAX(DM_REPORT_JOURNAL.date_report)中反映的日期:
SELECT DM_EVENT_T.event_id,
DM_EVENT_T.date_ops_end,
MAX(DM_REPORT_JOURNAL.date_report) AS [Final Report Date]
FROM DM_EVENT_T INNER JOIN
DM_REPORT_JOURNAL ON DM_EVENT_T.event_id = DM_REPORT_JOURNAL.event_id
WHERE (DM_REPORT_JOURNAL.entity_type = 'Daily Operations') AND (DM_EVENT_T.date_ops_end IS NULL)
GROUP BY
DM_EVENT_T.date_ops_end, DM_EVENT_T.event_id
我对SQL很陌生,所以对解决方案背后的方法或逻辑的任何见解都会非常感激!
答案 0 :(得分:1)
最大值可以存储在临时变量中,可以使用UPDATE进行设置 如果这不是预期值,可能包含一些示例数据和所需输出,则可以对其进行修改。
DECLARE @maxVal datetime
SELECT @maxVal = MAX(DM_REPORT_JOURNAL.date_report)
FROM DM_EVENT_T INNER JOIN
DM_REPORT_JOURNAL
ON DM_EVENT_T.event_id = DM_REPORT_JOURNAL.event_id
WHERE (DM_REPORT_JOURNAL.entity_type = 'Daily Operations') AND (DM_EVENT_T.date_ops_end IS NULL)
GROUP BY
DM_EVENT_T.date_ops_end, DM_EVENT_T.event_id
UPDATE DM_EVENT_T
set date_ops_end= @maxVal
where date_ops_end IS NULL