关于一个SQL语句的问题求教
来源:百度知道 编辑:UC知道 时间:2024/05/16 13:55:43
表A:
日期 班组 计划符合率
9/1/2007 Wbody 98%
9/1/2007 WIP 97%
9/2/2007 WBody 99%
9/2/2007 WIP 96%
9/3/2007 WBody 98%
9/3/2007 WIP 99%
| |
表B
班组 9/1/2007 9/2/2007 9/3/2007
Wbody 98% 99% 98%
WIP 97% 96% 99%
declare @sql varchar(4000)
set @sql = 'select 班组
select @sql = @sql + ' , sum(case 日期 when '''+日期+''' then Result end) ['+日期+']'
from (select distinct 日期 from A) as C
set @sql = @sql + ' from A group by 班组'
exec(@sql)
--测试
Declare @S Varchar(8000)
Select @S = ' Select 班组'
Select @S = @S + ', SUM(Case Left(日期, 10) When ''' + 日期+ ''' Then 计划符合率 Else 0 End) As [' + 日期 + ']'
From (Select Distinct Left(日期, 10) As 日期From 表A) A Order By 日期
Select @S = @S + ' From 表A Group By 班组'
EXEC(@S)
************************具体测试例子如下****************
--创建测试环境
Create Table SGMSCB
(SCB001 varchar(20),
SCB002 varchar(30),
SCB003 numeric(10, 0))
--插入数据
Insert SGMSCB Select N'张三', '2007-08-05 10:57:04.933', 1000
Union All Select N'张三',