求一分组SQL
if exists (select * from sysobjects where id = OBJECT_ID('[test]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [test]CREATE TABLE [test] ([日期] [datetime] NULL,[部门名称] [varchar] (50) NULL,[项目组] [varchar] (50) NULL,[客户名称] [varchar] (50) NULL,[金额] [decimal] (18,4) NULL,[类型] [varchar] (50) NULL)INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-22 00:00:00',N'长沙基地',N'威狮轿车',N'蔡方清',3770.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-22 00:00:00',N'长沙基地',N'米其林轿车南区',N'蔡鹏',3564.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-21 00:00:00',N'长沙基地',N'米其林轿车南区',N'蔡鹏',3564.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'长沙基地',N'朝阳卡车',N'蔡森林',13465.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'长沙基地',N'朝阳卡车',N'蔡森林',-20.0000,N'冲红')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-21 00:00:00',N'长沙基地',N'威狮轿车',N'曹梦华',8680.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-21 00:00:00',N'长沙基地',N'佳通轿车',N'曹梦华',14690.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'长沙基地',N'威狮轿车',N'曹毅仁',960.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-22 00:00:00',N'长沙基地',N'佳通轿车',N'昌德祥',30000.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'长沙基地',N'米其林轿车北区',N'长沙国合',795.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'长沙基地',N'米其林轿车北区',N'长沙国合',-20.0000,N'冲红')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'长沙基地',N'集团采购',N'长沙众旺公交公司',9400.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-21 00:00:00',N'长沙基地',N'集团采购',N'常德海螺水泥厂',25440.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'邵阳基地',N'威狮轿车',N'常航',9558.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'邵阳基地',N'威狮轿车',N'常航',5410.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'长沙基地',N'佳通轿车',N'常庆',-638.0000,N'冲红')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'长沙基地',N'佳通轿车',N'常庆',5098.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-20 00:00:00',N'邵阳基地',N'威狮轿车',N'陈初红',35765.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'长沙基地',N'米其林轿车北区',N'陈光辉',3120.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-21 00:00:00',N'成山卡车',N'成山卡车',N'陈国余',17087.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-22 00:00:00',N'成山卡车',N'成山卡车',N'陈国余',33568.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-21 00:00:00',N'成山卡车',N'成山卡车',N'陈国余',-2440.0000,N'冲红')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-22 00:00:00',N'成山卡车',N'成山卡车',N'陈国余',-4028.0000,N'冲红')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-20 00:00:00',N'成山卡车',N'成山卡车',N'陈国余',30000.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-22 00:00:00',N'长沙基地',N'米其林轿车南区',N'陈果',4755.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-22 00:00:00',N'邵阳基地',N'米其林轿车南区',N'陈果',6537.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'长沙基地',N'米其林轿车南区',N'陈果',-120.0000,N'冲红')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'长沙基地',N'米其林轿车南区',N'陈果',3630.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-21 00:00:00',N'邵阳基地',N'米其林轿车南区',N'陈建军',20936.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-21 00:00:00',N'邵阳基地',N'米其林轿车南区',N'陈建军',-1020.0000,N'冲红')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-22 00:00:00',N'邵阳基地',N'米其林轿车南区',N'陈建军',32901.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'长沙基地',N'朝阳卡车',N'陈江强',-3555.0000,N'冲红')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'长沙基地',N'朝阳卡车',N'陈江强',145300.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-20 00:00:00',N'长沙基地',N'朝阳卡车',N'陈丽丽',3690.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-20 00:00:00',N'长沙基地',N'佳通卡车北区',N'陈丽丽',1675.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-22 00:00:00',N'长沙基地',N'佳通轿车',N'陈倩',6036.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-22 00:00:00',N'长沙基地',N'佳通轿车',N'陈倩',-708.0000,N'冲红')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-20 00:00:00',N'长沙基地',N'佳通卡车南区',N'陈清龙',53285.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-21 00:00:00',N'长沙基地',N'米其林轿车北区',N'陈庆',-150.0000,N'冲红')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'长沙基地',N'米其林轿车北区',N'陈庆',-590.0000,N'冲红')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'长沙基地',N'米其林轿车北区',N'陈庆',9470.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-21 00:00:00',N'长沙基地',N'米其林轿车北区',N'陈庆',15036.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-20 00:00:00',N'邵阳基地',N'佳通卡车南区',N'陈胜',50000.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-20 00:00:00',N'邵阳基地',N'朝阳卡车',N'陈胜',40000.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'邵阳基地',N'朝阳卡车',N'陈沩义',14400.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'长沙基地',N'朝阳卡车',N'陈沩义',18000.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'邵阳基地',N'朝阳卡车',N'陈沩义',14400.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'长沙基地',N'朝阳卡车',N'陈艳',13950.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-20 00:00:00',N'长沙基地',N'佳通卡车南区',N'陈艳',36925.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-20 00:00:00',N'长沙基地',N'朝阳卡车',N'陈艳',25280.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-20 00:00:00',N'长沙基地',N'朝阳卡车',N'陈友贵',6000.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'邵阳基地',N'朝阳卡车',N'陈又红',58325.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-20 00:00:00',N'邵阳基地',N'朝阳卡车',N'陈又红',18315.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-20 00:00:00',N'长沙基地',N'朝阳卡车',N'陈又红',-18315.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-20 00:00:00',N'邵阳基地',N'朝阳卡车',N'陈又红',-12890.0000,N'冲红')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'邵阳基地',N'朝阳卡车',N'陈又红',18700.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-21 00:00:00',N'长沙基地',N'朝阳卡车',N'陈又红',7860.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-20 00:00:00',N'邵阳基地',N'朝阳卡车',N'陈又红',68325.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-21 00:00:00',N'长沙基地',N'佳通卡车北区',N'陈佑天',7410.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-21 00:00:00',N'长沙基地',N'佳通卡车北区',N'陈佑天',-420.0000,N'冲红')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-21 00:00:00',N'长沙基地',N'朝阳卡车',N'陈泽良',15590.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-20 00:00:00',N'长沙基地',N'朝阳卡车',N'陈泽良',12000.0000,N'收款')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-21 00:00:00',N'长沙基地',N'朝阳卡车',N'陈泽良',-6458.0000,N'质胎')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-20 00:00:00',N'长沙基地',N'米其林卡车',N'谌津彪',4200.0000,N'销售')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'邵阳基地',N'佳通轿车',N'成科新',-1689.0000,N'冲红')INSERT [test] ([日期],[部门名称],[项目组],[客户名称],[金额],[类型]) VALUES ( N'2012-04-23 00:00:00',N'邵阳基地',N'佳通轿车',N'成科新',16163.0000,N'销售')
select top 2 [日期],[部门名称],[项目组],[客户名称],case when 类型='销售' then 金额 else 0 end "销售",case when 类型='冲红' then 金额 else 0 end "冲红",case when 类型='质胎' then 金额 else 0 end "质胎",case when 类型='收款' then 金额 else 0 end "收回",case when 类型='支付' then 金额 else 0 end "支付",case when 类型='预收' then 金额 else 0 end "预收" from test where 客户名称='陈泽良 ' order by 日期, 金额 /*日期 部门名称 项目组 客户名称 销售 冲红 质胎 收回 支付 预收2012-04-20 00:00:00.000 长沙基地 朝阳卡车 陈泽良 0.0000 0.0000 0.0000 12000.0000 0.0000 0.00002012-04-21 00:00:00.000 长沙基地 朝阳卡车 陈泽良 0.0000 0.0000 -6458.0000 0.0000 0.0000 0.0000
[解决办法]
declare @sql varchar(2000)set @sql = ''select @sql = @sql + ',' + 类型 from test group by 类型set @sql= stuff(@sql,1,1,'')select @sql = 'select * from test pivot (max(金额) for 类型 in ( ' + @sql + ')) tbtemp'exec(@sql)