0
我有一個查詢,我無法正常工作。我有3張桌子; Person,PersonProgram和Category。優先查詢
Person: ID, ....
PersonProgram: ID, PersonID, Category, Code ...
Category: ID, ...
Person表對每個人有1條記錄,PersonProgram對每個人有多個程序。有四個類別,我需要拉入每個人的單行,並與每個類別的特定程序。
人表:
1
2
3
PersonProgram表
1, 1, 1, 1
2, 1, 2, 1
3, 1, 1, 3
4, 2, 1, 1
5, 2, 3, 3
期望的結果應該是什麼:
PersonID, ProgramIDforCat1, ProgramIDforCat2, ProgramIDforCat3, ProgramIDforCat4
1, 1, 2, NULL, NULL
2, 1, NULL, 3, NULL
的問題是,有每個人的多個程序記錄和類別代碼爲1,2或3.我需要優先考慮代碼1,然後代碼3和忽略剩下的只剩下1條記錄,如果不存在則返回NULL。
我失去它試圖讓它工作。
僅供參考,它必須在視圖中。
感謝您的任何幫助。
在我的例子中的結果可能是錯誤的,方式長這個查詢。我會看看這個,看起來很有前途。週五放棄時間:) – 2010-08-20 22:59:09
在視圖中可以使用'ROW_NUMBER'嗎?如果我添加SSMS每次崩潰。使用SQL 2005. – 2010-08-23 15:55:03
@durilai - 是的。如果設計者無法應付它,試着通過腳本'CREATE VIEW dbo.ViewName AS WITH pp2 AS ...'來做到這一點'' – 2010-08-23 15:59:12