--建立测试环境
Create Table 表(投诉记录号 varchar(10),接警类型 varchar(10),城区名称 varchar(10))
--插入数据
insert into 表
select '00','环保投诉','江岸区' union
select '12','环保投诉','江汉区' union
select '13','环保投诉','武昌区' union
select '25','工商投诉','江岸区' union
select '30','工商投诉','江汉区' union
select '45','工商投诉','武昌区' union
select '20','公安投诉','江岸区' union
select '25','公安投诉','江汉区' union
select '5','公安投诉','武昌区' --select * from 表
--测试语句
--动态查询
DECLARE @SQL VARCHAR(8000)
SET @SQL='SELECT 接警类型'
SELECT @SQL= @SQL+ ',max(CASE WHEN 城区名称 = ''' + 城区名称 + ''' THEN 投诉记录号 END) [' + 城区名称 + '电量] '
FROM (SELECT DISTINCT 城区名称 FROM 表) A
SET @SQL=@SQL+ ' FROM 表 GROUP BY 接警类型'
EXEC (@SQL)
--删除测试环境
Drop Table 表/*--测试结果接警类型 江岸区电量 江汉区电量 武昌区电量
---------- ---------- ---------- ----------
工商投诉 25 30 45
公安投诉 20 25 5
环保投诉 00 12 13
--*/
Create Table 表(投诉记录号 varchar(10),接警类型 varchar(10),城区名称 varchar(10))
--插入数据
insert into 表
select '00','环保投诉','江岸区' union
select '12','环保投诉','江汉区' union
select '13','环保投诉','武昌区' union
select '25','工商投诉','江岸区' union
select '30','工商投诉','江汉区' union
select '45','工商投诉','武昌区' union
select '20','公安投诉','江岸区' union
select '25','公安投诉','江汉区' union
select '5','公安投诉','武昌区' --select * from 表
--测试语句
--动态查询
DECLARE @SQL VARCHAR(8000)
SET @SQL='SELECT 接警类型'
SELECT @SQL= @SQL+ ',max(CASE WHEN 城区名称 = ''' + 城区名称 + ''' THEN 投诉记录号 END) [' + 城区名称 + '电量] '
FROM (SELECT DISTINCT 城区名称 FROM 表) A
SET @SQL=@SQL+ ' FROM 表 GROUP BY 接警类型'
EXEC (@SQL)
--删除测试环境
Drop Table 表/*--测试结果接警类型 江岸区电量 江汉区电量 武昌区电量
---------- ---------- ---------- ----------
工商投诉 25 30 45
公安投诉 20 25 5
环保投诉 00 12 13
--*/
SET @SQL='SELECT 接警类型'
SELECT @SQL= @SQL+ ',max(CASE WHEN 城区名称 = ''' + 城区名称 + ''' THEN 投诉记录号 END) [' + 城区名称 + '电量] '
FROM (SELECT DISTINCT 城区名称 FROM 表) A
SET @SQL=@SQL+ ' FROM 表 GROUP BY 接警类型'
EXEC (@SQL)
这个能解释一下吗?