****SQL实例问题******求助*****谢谢!
现在有一张数据表:Table1
FcaID FSec FName
001 1 卡片1
001 2 卡片2
002 1 卡片3
002 2 卡片4
002 3 卡片5
说明:同一个FcaID可能对应着N条记录(1=<N<=10)
如果不通过写存储过程或函数,只用sql,能否实现以下取数:
FcaID FName
001 卡片1卡片2
002 卡片3卡片4卡片5
SqlServer2000,多谢~~~~~~
------解决方案--------------------select FcaID,
max(case when FSec=1 then FName else '' end)+
max(case when FSec=2 then FName else '' end)+
max(case when FSec=3 then FName else '' end)+
...............
max(case when FSec=9 then FName else '' end)+
max(case when FSec=10 then FName else '' end)
from Table1 group by FcaID
------解决方案--------------------2000的静态行列转换应该可以实现
------解决方案--------------------
create table table1(FcaID varchar(10), FSec int, FName varchar(20))
insert into table1
select '001', 1 ,'卡片1' union all
select '001', 2 ,'卡片2' union all
select '002', 1 ,'卡片3' union all
select '002', 2 ,'卡片4' union all
select '002', 3 ,'卡片5'
go
select FcaID,left(FName,LEN(fname)-1) as fname
from
(
select FcaID,
MAX(case when FSec=1 then FName+',' else '' end) +
MAX(case when FSec=2 then FName+',' else '' end) +
MAX(case when FSec=3 then FName+',' else '' end) +
MAX(case when FSec=4 then FName+',' else '' end) +
MAX(case when FSec=5 the