有一张如下图所示的表格。
如何进行查询以执行以下步骤:
1。查找KID=565
然后
2。查找与此后KID=565
相关的年度和月份相同的所有记录
3。,必须完成此等式:
所有PCount * Score
的总和。
例如:KID = 565
有三条记录,其中包含年份和月份(2015-11-?)
,然后sum = (2*1000) + (1*1000) + (4*1000) = 7000
,以及....
然后,结果必须插入另一个表中,如下图所示:
答案 0 :(得分:4)
可以通过年度和月份分组来完成:
declare @t table(KID int, BuyDate date, Pcount int, Score int)
insert into @t values
(565, '20151120', 2, 1000),
(565, '20151125', 1, 1000),
(565, '20151125', 4, 1000),
(565, '20151220', 8, 1000),
(565, '20151221', 2, 1000),
(1, '20151206', 1, 1000),
(1, '20151219', 1, 1000)
select KID,
DATEADD (dd, -1, DATEADD(mm, DATEDIFF(mm, 0, max(BuyDate)) + 1, 0)) BuyDate,
SUM(Pcount * Score) BP,
MAX(Score) Score
from @t
where KID = 565
group by KID, YEAR(BuyDate), MONTH(BuyDate)