【发布时间】:2017-11-20 11:40:54
【问题描述】:
如果我从我的 dbo.targetsvssales 表中选择所有,我会得到以下结果:
Date | Sales | Targets
_____________________________
2017-01-01 10 10
2017-02-01 19 20
2017-03-01 31 30
2017-04-01 38 40
2017-05-01 49 50
2017-06-01 62 60
2017-07-01 70 70
2017-08-01 75 80
2017-09-01 88 90
2017-10-01 101 100
2017-11-01 105 110
2017-12-01 105 120
我只想选择日期小于当前日期的销售数据,将未来日期的结果保留为空,但保持目标值不变。所以 select 语句的期望结果是:
Date | Sales | Targets
_____________________________
2017-01-01 10 10
2017-02-01 19 20
2017-03-01 31 30
2017-04-01 38 40
2017-05-01 49 50
2017-06-01 62 60
2017-07-01 70 70
2017-08-01 75 80
2017-09-01 88 90
2017-10-01 101 100
2017-11-01 105 110
2017-12-01 NULL 120
这需要能够全年工作,以及在具有每周和每日精度的表上作为日期列,所以使用
WHERE DATE > GETDATE()
或类似的东西是理想的。任何帮助或建议将不胜感激。
【问题讨论】:
-
case when date > getdate() then null else date end
标签: sql sql-server