27,579
社区成员
发帖
与我相关
我的任务
分享
INSERT INTO #sbcd
SELECT 'abcd', 'hd1',1, 0.17 UNION ALL
SELECT 'abcd' ,'hd2',2, 0.17 UNION ALL
SELECT 'abcd', 'hd3',3, 0.17 UNION ALL
SELECT 'abn' ,'hd7', 2,0.17 UNION ALL
SELECT 'abn' ,'hd3', 5,0.17
SELECT * FROM #sbcd
SELECT matecode,
MAX((CASE WHEN corpcode = 'hd1' THEN corpcode END)),
MAX((CASE WHEN corpcode = 'hd1' THEN price END)),
MAX((CASE WHEN corpcode = 'hd1' THEN rate END)),
MAX((CASE WHEN corpcode = 'hd2' THEN corpcode END)),
MAX((CASE WHEN corpcode = 'hd2' THEN price END)),
MAX((CASE WHEN corpcode = 'hd2' THEN rate END))
FROM #sbcd
GROUP BY matecode
DECLARE @sql VARCHAR(8000)
SET @sql = 'SELECT matecode '
SELECT @sql=@sql + ',max(case when corpcode= '''+corpcode+''' then corpcode end)
,max(case when corpcode= '''+corpcode+''' then price end)
,max(case when corpcode= '''+corpcode+''' then rate end)
'
FROM (SELECT distinct corpcode from #sbcd) a
SET @sql = @sql + ' from #sbcd group by matecode'
EXECUTE(@sql)
--静态
SELECT matecode ,max(case when corpcode= 'hd1' then corpcode end) corpcode1
,max(case when corpcode= 'hd1' then price end) price1
,max(case when corpcode= 'hd1' then rate end) rate1
,max(case when corpcode= 'hd2' then corpcode end) corpcode2
,max(case when corpcode= 'hd2' then price end) price2
,max(case when corpcode= 'hd2' then rate end) rate2
,max(case when corpcode= 'hd3' then corpcode end) corpcode3
,max(case when corpcode= 'hd3' then price end) price3
,max(case when corpcode= 'hd3' then rate end) rate3
,max(case when corpcode= 'hd4' then corpcode end)
,max(case when corpcode= 'hd4' then price end)
,max(case when corpcode= 'hd4' then rate end)
,max(case when corpcode= 'hd7' then corpcode end)
,max(case when corpcode= 'hd7' then price end)
,max(case when corpcode= 'hd7' then rate end)
from #sbcd group by matecode