我真的不知道这个查询怎么写:
T1: ID,客户名称,金额
如果查询:
SELECT * from T1
结果是:
1 上海1 100
2 上海2 120
3 上海3 150
4 上海4 160
.
.
.
100 上海100 2020我现在想查询的结果是这样的:序号 上海1 上海2 上海3 上海4 ............上海100
1 100 120 150 160 ............2020如何写呢?
总不可能把每一个结果查出来填到相应字段吧?
T1: ID,客户名称,金额
如果查询:
SELECT * from T1
结果是:
1 上海1 100
2 上海2 120
3 上海3 150
4 上海4 160
.
.
.
100 上海100 2020我现在想查询的结果是这样的:序号 上海1 上海2 上海3 上海4 ............上海100
1 100 120 150 160 ............2020如何写呢?
总不可能把每一个结果查出来填到相应字段吧?
set @s='select 1 as 序号'
select @s=@s+','+客户名称+'=sum(case 客户名称 when '''+客户名称+''' then 金额 end)' from T1 group by 客户名称
set @s=@s+' from T1'
exec(@s)
insert into T1 select 1,'上海1',100
insert into T1 select 2,'上海2',120
insert into T1 select 3,'上海3',150
insert into T1 select 4,'上海4',160declare @s varchar(8000)
set @s='select 1 as 序号'
select @s=@s+','+客户名称+'=sum(case 客户名称 when '''+客户名称+''' then 金额 end)' from T1 group by 客户名称
set @s=@s+' from T1'
exec(@s)/*
序号 上海1 上海2 上海3 上海4
----------- ----------- ----------- ----------- -----------
1 100 120 150 160
*/drop table T1
------------------------------------------------------------------------------------------------------------------语法上没问题,可能是超过了8000字节的长度限制。