已知表A,要得到報表B,如何做?
表B的字段是根據表A的缺點動態增加的.
我用存儲過程游標做,但未能實現,並且速度可能會很慢
請教!!!!!!表A員工 日期 缺點名稱 缺點數量
A 12/01 缺點1 5
A 12/01 缺點2 6
B 12/01 缺點1 7
C 12/01 缺點3 8
A 12/02 缺點1 9
... ... 缺點4 ...
... ... 缺點5 ...
... ... 缺點..... ...表B員工 日期 缺點1 缺點2 缺點3 缺點4 缺點5 缺點.....
A 12/01 5 6
A 12/02 9
B 12/01 7
C 1201 8
表B的字段是根據表A的缺點動態增加的.
我用存儲過程游標做,但未能實現,並且速度可能會很慢
請教!!!!!!表A員工 日期 缺點名稱 缺點數量
A 12/01 缺點1 5
A 12/01 缺點2 6
B 12/01 缺點1 7
C 12/01 缺點3 8
A 12/02 缺點1 9
... ... 缺點4 ...
... ... 缺點5 ...
... ... 缺點..... ...表B員工 日期 缺點1 缺點2 缺點3 缺點4 缺點5 缺點.....
A 12/01 5 6
A 12/02 9
B 12/01 7
C 1201 8
把列里值一行显示出来declare @temp varchar(8000)
set @temp=''
select @temp=@temp+[name]+', ' from tb_Char
select @temp
sum(case '缺点名称' when '缺点2' then 1 else 0 end) as 缺点2;
sum(case '缺点名称' when '缺点2' then 1 else 0 end) as 缺点2;
…………………………………………
from 表A groupby 员工
//汉字字段加好引号
这种方法不好,用动态sql好些,但我不会用,以前大版 风炎 给我写过,如果想搞清,不如想他请教下,你可以参考我以前的贴子:
http://community.csdn.net/Expert/TopicView.asp?id=3552806
(case 缺点名称 when '缺点2' then (缺点数量) else 0 end) as 缺点2,
(case 缺点名称 when '缺点3' then (缺点数量) else 0 end) as 缺点3
from 表A
group by 员工,日期,缺点名称,缺点数量
order by 员工
楼主给分,害得我是0点还在给你研究,专门还建了个表。以上ok
還要請高手指點!!!!!!!!!!!!!!!!!!declare @sql varchar(8000)
set @sql='select 作業員 '
--select @sql=@sql+',sum(case when 缺點名稱='''+缺點名稱+''' then 缺點數量 else 0 end) as '+缺點名稱
select @sql=@sql+',sum(case when 缺點名稱='''+缺點名稱+''' then 缺點數量 else 0 end)['+缺點名稱+']'
from A group by 缺點名稱
set @sql=@sql+' from a group by 作業員'--,缺點名稱,缺點數量'
exec(@sql)