【发布时间】:2015-11-16 21:34:03
【问题描述】:
我有一个包含多个 id (30+) 和 5+ 个季度的表,需要在 where 子句中使用。示例表1:
ID date qtr Value
______________________________________
1 2014-01-12 2014Q1 0.123
1 2014-02-14 2014Q1 0.126
1 2014-03-23 2014Q1 0.232
1 2014-04-10 2014Q2 0.222
1 2014-06-12 2014Q2 0.226
2 2014-01-13 2014Q1 0.120
2 2014-02-24 2014Q1 0.132
2 2014-03-21 2014Q1 0.241
2 2014-04-11 2014Q2 0.299
2 2014-06-14 2014Q2 0.312
我想编写一个查询,使用日期字段将每个季度的每个 ID 的值替换为该季度的最新值。这是我想要的结果表:
ID date qtr Value
______________________________________
1 2014-01-12 2014Q1 0.232
1 2014-02-14 2014Q1 0.232
1 2014-03-23 2014Q1 0.232
1 2014-04-10 2014Q2 0.226
1 2014-06-12 2014Q2 0.226
2 2014-01-13 2014Q1 0.241
2 2014-02-24 2014Q1 0.241
2 2014-03-21 2014Q1 0.241
2 2014-04-11 2014Q2 0.312
2 2014-06-14 2014Q2 0.312
这是我目前的查询.. 但出现错误:
select id, qtr, month(date) as date1, date, value
from table1
where qtr = '2014Q1' and id = '1'
group by id, qtr, date, month(date), value
Having month(convert (varchar, date, 112)) = max(month(date))
【问题讨论】: