首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于交插表的小疑点,一下下。

2012-01-14 
关于交插表的小问题,求助一下下。。。表AP_CD,M_A二个字段表BUSER_CD,RIQI,P_CD三个字段二个表的结合条件是表

关于交插表的小问题,求助一下下。。。
表A

P_CD,M_A   二个字段

表B

USER_CD,RIQI,P_CD三个字段

二个表的结合条件是   表A.P_CD   =   表B.P_CD
-------------------------------------------------------
如何得到:
                    RIQI1,RIQI2,RIQI3......
USER_CD1     M_A1     M_A2     M_A3   ......
USER_CD2     M_A1     M_A2     M_A3   ......
USER_CD3     M_A1     M_A2     M_A3   ......
.                     .           .           .              
.                     .           .           .              
.                     .           .           .              


感谢!

[解决办法]
--生成一个临时表
select b.user_cd,b.riqi,a.m_a into tmp from a,b where a.p_cd=b.p_cd
--动态SQL
declare @sql varchar(8000)
set @sql = 'select user_cd '
select @sql = @sql + ' , max(case px when ' ' ' + cast(px as varchar) + ' ' ' then m_a end) [riqi ' + cast(px as varchar) + '] '
from (select distinct px from (select px=(select count(1) from tmp where user_cd=t.user_cd and riqi <t.riqi)+1 , * from tmp t) m) as a
set @sql = @sql + ' from (select px=(select count(1) from tmp where user_cd=t.user_cd and riqi <t.riqi)+1 , * from tmp t) m group by user_cd '
exec(@sql)

热点排行