22,209
社区成员
发帖
与我相关
我的任务
分享
--> 测试数据:[tb]
IF OBJECT_ID('[tb]') IS NOT NULL DROP TABLE [tb]
GO
CREATE TABLE [tb]([ID] INT,[SN] INT,[Brand] VARCHAR(2),[CreateDate] DATETIME)
INSERT [tb]
SELECT 1,1001,'b1','2012-08-30' UNION ALL
SELECT 2,1002,'b1','2012-08-31' UNION ALL
SELECT 3,1003,'b2','2012-07-03' UNION ALL
SELECT 4,1004,'b2','2012-06-12' UNION ALL
SELECT 5,1005,'b1','2012-07-09' UNION ALL
SELECT 6,1006,'b1','2012-09-30'
--------------开始查询--------------------------
SELECT [Brand],
SUM(CASE WHEN [CreateDate] > GETDATE()-15 AND [CreateDate]<= GETDATE() THEN 1 ELSE 0 END) ,
SUM(CASE WHEN [CreateDate] > GETDATE()-30 AND [CreateDate]<= GETDATE()-15 THEN 1 ELSE 0 END) ,
SUM(CASE WHEN [CreateDate] > GETDATE()-60 AND [CreateDate]<= GETDATE()-30 THEN 1 ELSE 0 END) ,
SUM(CASE WHEN [CreateDate] < GETDATE()-90 THEN 1 ELSE 0 END)
FROM [tb]
GROUP BY [Brand]
----------------结果----------------------------
/*
Brand (无列名) (无列名) (无列名) (无列名)
b1 0 1 1 0
b2 0 0 0 1*/
--> 测试数据:[tb]
IF OBJECT_ID('[tb]') IS NOT NULL DROP TABLE [tb]
GO
CREATE TABLE [tb]([ID] INT,[SN] INT,[Brand] VARCHAR(2),[CreateDate] DATETIME)
INSERT [tb]
SELECT 1,1001,'b1','2012-08-30' UNION ALL
SELECT 2,1002,'b1','2012-08-31' UNION ALL
SELECT 3,1003,'b2','2012-07-03' UNION ALL
SELECT 4,1004,'b2','2012-06-12' UNION ALL
SELECT 5,1005,'b1','2012-07-09' UNION ALL
SELECT 6,1006,'b1','2012-09-30'
--------------开始查询--------------------------
SELECT [Brand],
SUM(CASE WHEN [CreateDate] BETWEEN GETDATE()-15 AND GETDATE()THEN 1 ELSE 0 END) ,
SUM(CASE WHEN [CreateDate] BETWEEN GETDATE()-30 AND GETDATE()THEN 1 ELSE 0 END) ,
SUM(CASE WHEN [CreateDate] BETWEEN GETDATE()-60 AND GETDATE()THEN 1 ELSE 0 END) ,
SUM(CASE WHEN [CreateDate] BETWEEN GETDATE()-90 AND GETDATE()THEN 1 ELSE 0 END)
FROM [tb]
GROUP BY [Brand]
----------------结果----------------------------
/*
Brand (无列名) (无列名) (无列名) (无列名)
b1 0 1 2 3
b2 0 0 0 1
*/