本網站的首次發帖,但過去我已經使用過很多次。我確實試圖尋找答案,但無法確定如何正確地設定問題,所以這裏就是了。SQL Server將行聚合爲列值
我有一個表,其中每行的評估數爲1,2,3或4.每行也有一個ID,它是成員資格表的外鍵,另一個ID是其他外鍵與該行相關的數據(一個保存測試信息的表)。
我需要做的是通過會員組過濾器,記錄這個列表,然後創建某種類型列出的輸出查詢:
- 測試ID
- 是記錄的數量評價,以1
- 被評估爲2
- 被評價爲3
- 被評估至4 的記錄的數量的記錄的數量的記錄數
我可以計算出如何分別使用像得到每個評價數的計數:
SELECT Count(Eval), scores.TestID
FROM membership INNER JOIN (scores INNER JOIN tests ON scores.TestID = tests.TestID) ON membership.ID = scores.ClientID
WHERE membership.GroupID = <MembershipGroup> AND scores.Eval = 1;
凡在上面是主過濾器,scores.TestID是「分組」 ID,和Count(Eval)是我想要的總數。基本上我的理想輸出是:
ID |Count1|Count2|Count3|Count4 ----------------------------------- 100 |5 |8 |9 |12 101 |16 |2 |14 |11
......等等。再次,抱歉,如果這是一個亂七八糟的混亂,希望你可以幫助!
PS。所得到的查詢將從ASP.NET中檢索以綁定到ListView - 如果任何人都可以建議我是否更好地將其作爲存儲過程編寫並查看或將其編碼到ASP中的SQLDataSource中,這將非常感謝:-)
哇,這是驚人的,並完美的第一次工作。謝謝先生,你是一位真正的天才! – Katstevens 2013-04-05 02:25:45
@ user2247277 - np,很高興能幫到你! – sgeddes 2013-04-05 02:29:06