我已經搜索了很多類似的主題,但仍然在努力實現這一目標。我試圖在做一些表連接後特別對一列進行分組。任何幫助wouldbe不勝感激SQL Server - 由多個連接和字符串組成
OUTPUT今天
Account System System Plan Code Account Plan Code Request
12345 Sys1 Sys1 P1 12345 P1 00001
12345 Sys1 Sys1 P2 NULL NULL NULL
12345 Sys2 Sys2 P3 12345 P3 00002
34567 Sys1 Sys1 P1 NULL NULL NULL
34567 Sys1 Sys1 P2 34567 P2 00003
45678 Sys3 Sys3 P4 NULL NULL NULL
所需的輸出
Account System System Plan Code Account Plan Code Request
12345 Sys1 Sys1 P1 12345 P1, P2 00001
12345 Sys2 Sys2 P3 12345 P3 00002
34567 Sys1 Sys1 P2 34567 P1,P2 00003
45678 Sys3 Sys3 P4 NULL NULL NULL
我參加了幾桌,我想每個每個唯一帳戶計劃代碼合併到一個行系統映射。
- TAB1 =帳戶和系統
- TAB2 =系統和計劃代碼(映射是 顯示了計劃代碼都涉及到每個系統)
- TAB3 =帳戶,計劃代號,請求#
我迷路了,我嘗試了一列GROUP BY,得到不是GROUP BY表達式的錯誤。那麼我包括了所有的列,並且根本不會改變輸出。
SELECT A.ACCOUNT, A.SYSTEM, B.SYSTEM, B.PCODE, C.ACCOUNT, C.PCODE, C.REQUEST
FROM MYDB.TAB1 A
LEFT JOIN MYDB.TAB2 B
ON A.SYSTEM = B.SYSTEM
LEFT JOIN MYDB.TAB3 C
ON A.ACCOUNT = C.ACCOUNT AND B.PCODE = C.PCODE
WHERE A.ACCOUNT IS NOT NULL
ORDER BY A.ACCOUNT
實際輸出中的列數與顯示的查詢不匹配。你可以請發佈產生你的輸出的實際查詢? – 2013-04-06 01:38:01
我將更新實際查詢的輸出,我只需要輸入輸出的預覽,只關注我關心的列,因爲有些列表是重複的。我現在會更新它,以便清楚。感謝您查看 – Yume 2013-04-06 01:41:50
這裏的主要挑戰是連接'Plan Codes',因爲MS SQL Server沒有直接模擬'GROUP_CONCAT'。其餘的似乎微不足道。 – 2013-04-06 01:45:20