use mscore
select SUM(SCORE_PFSCORE) as a , MAX(SCORE_RYID) as b,MAX(SCORE_NAME) as c,
MAX(SCORE_PFDL_NAME) as d
--, MAX(SCORE_PFXL_NAME)
from SCORE
where SCORE_PFSD='GBHX20200817020438'
group by SCORE_PFDL_ID,SCORE_RYID
這樣的sql 陳述句 ,得到的結果如下

能否通過轉化,得到這樣的結果
姓名 編號 政治面貌 專業素養 負面清單 作業實績 受到問責處理 合計
張三 0001 15 13 -15 54 -20 47
李四 0002 0 0 0 0 0 0
uj5u.com熱心網友回復:
專案只有 政治面貌 專業素養 負面清單 作業實績 受到問責處理 這幾樣固定的么?uj5u.com熱心網友回復:
不是,隨時可能變的
uj5u.com熱心網友回復:
select * from s
--2:動態拼接行轉列
DECLARE @sql VARCHAR(8000)
SET @sql = 'SELECT 姓名,班級,'
SELECT @sql = @sql + 'SUM(CASE 科目 WHEN '''+科目+''' THEN 成績 ELSE 0 END) AS '''+QUOTENAME(科目)+''','
FROM (SELECT DISTINCT 科目 FROM s) AS a
SELECT @sql = LEFT(@sql,LEN(@sql)-1) + ' FROM s GROUP BY 姓名,班級'
PRINT(@sql)
EXEC(@sql)
GO
uj5u.com熱心網友回復:
加上合計
--2:動態拼接行轉列
DECLARE @sql VARCHAR(8000)
SET @sql = 'SELECT 姓名,班級,'
SELECT @sql = @sql + 'SUM(CASE 科目 WHEN '''+科目+''' THEN 成績 ELSE 0 END) AS '''+QUOTENAME(科目)+''','
FROM (SELECT DISTINCT 科目 FROM s) AS a
SELECT @sql = LEFT(@sql,LEN(@sql)-1) + ',sum(成績)合計 FROM s GROUP BY 姓名,班級'
PRINT(@sql)
EXEC(@sql)
GO
uj5u.com熱心網友回復:
請試一下這個里面的方法行列轉換的兩種方法分享uj5u.com熱心網友回復:
學習了,我研究下
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/11414.html
標籤:基礎類
上一篇:sql server express 是怎么授權的?
下一篇:資料庫航行轉列要咋弄呀,感覺很難
