可以說,我有如下的表:如何使用SQL通過不同的日期來完成一個組?
- 數量,INTEGER
- SaleDate,DATETIME
我現在想看到這樣的結果:
Sold in the last 7 days | Sold in last 14 days
-----------------------------------------------------
10 | 20
我可以使用where子句在之間使用,但是如何獲得售出7天和14天的數量?
可以說,我有如下的表:如何使用SQL通過不同的日期來完成一個組?
我現在想看到這樣的結果:
Sold in the last 7 days | Sold in last 14 days
-----------------------------------------------------
10 | 20
我可以使用where子句在之間使用,但是如何獲得售出7天和14天的數量?
在WHERE子句中過濾得到天0到-14。然後分別在第0天到第7天彙總。
SELECT
...,
SUM(CASE WHEN SaleDate >= DATEADD(day, -7, GETDATE()) THEN 1 ELSE 0 END) AS 7days,
COUNT(*) AS 14days
FROM
MyTable
WHERE
SaleDate >= DATEADD(day, -14, GETDATE())
GROUP BY
...
select sum(Qty), datediff(w, getdate(), SaleDate) as Period
from table
group by datediff(ww, getdate(), SaleDate)
MS的T-SQL測試2003
declare @whatever table(
qty int,
saledate datetime
)
insert into @whatever select 1, getdate()
insert into @whatever select 2, dateadd(dd, -1, getdate())
insert into @whatever select 2, dateadd(dd, -2, getdate())
insert into @whatever select 1, dateadd(dd, -3, getdate())
insert into @whatever select 1, dateadd(dd, -4, getdate())
insert into @whatever select 1, dateadd(dd, -5, getdate())
insert into @whatever select 1, dateadd(dd, -6, getdate())
insert into @whatever select 1, dateadd(dd, -7, getdate())
insert into @whatever select 1, dateadd(dd, -8, getdate())
insert into @whatever select 1, dateadd(dd, -9, getdate())
insert into @whatever select 2, dateadd(dd, -10, getdate())
insert into @whatever select 2, dateadd(dd, -11, getdate())
insert into @whatever select 1, dateadd(dd, -15, getdate())
insert into @whatever select 2, dateadd(dd, -16, getdate())
select
qty,
sum(
case
when datediff(dd, saledate, getdate()) between 0 and 7 then 1
else 0
end
) as [Sold in last 7 days],
sum(
case
when datediff(dd, saledate, getdate()) between 0 and 14 then 1
else 0
end
) as [Sold in last 14 days]
from
@whatever
group by
qty
;
我通過在輸出的'Qty'柱困惑;你是否想要在過去7天和14天內銷售的實際總數,或者你是否真的希望根據數量進行分組(即銷售數量1,銷售數量2等)? – Aaronaught 2010-03-03 19:06:08
同意Aaronaught:聚合/列沒有任何意義。 – gbn 2010-03-03 19:07:59
@gbn @Aaronaught我修改了我的輸出。 – vikasde 2010-03-03 19:17:26