SQL - 特定的DATEADD要求

时间:2015-04-28 17:48:57

标签: sql dateadd ssms-2014

我有三个$ docker exec -it stack_dns_1 hostname affy.affy.com

DM_EVENT.event_code

我需要使用日期参数来选择最新的所需报告日期(在此示例中为'DRL' 'CMP' 'WOV' )以从该日期开始提取'4/28/15'SUM(DM_DAILYCOST.cost_per_item)'CMP'可以使用所选日期。

但是,对于代码'WOV',我需要为'DRL'提取SUM(DM_DAILYCOST.cost_per_item)

我认为我使它变得比它需要的更难,但我坚持一个解决方案。非常感谢任何见解!

DATEADD(d,-1,'4/28/15')

1 个答案:

答案 0 :(得分:0)

您需要的只是WHERE声明中的正确条件。您应该在'CMP'日期'WOV''4/28/15'事件中仅选择'DRL'DATEADD(d,-1,'4/28/15')个事件:

SELECT
 ...,
 SUM(dm_dailycost.cost_per_item) as Expr1,
 ...
FROM ...
INNER JOIN ...
...
WHERE
      dm_event.event_code in ('CMP', 'WOV') 
  AND dm_report_journal.date_report = '4/28/15'
  OR 
      dm_event.event_code = 'DRL'
  AND dm_report_journal.date_report = DATEADD(d,-1,'4/28/15')
GROUP BY ...

从查询中删除您的HAVING语句。