关于一个SQL语句的问题求教

来源:百度知道 编辑:UC知道 时间:2024/05/16 13:55:43
下面表A是我数据库中的数据,其中包括三个字段日期、班组、计划符合率,我想通过SQL语句输出表B格式的整合结果,求教,请大家帮助!

表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'张三',