我有2個表格(Application,Transaction)。從SQL Server中的多個表中提取記錄 - 棘手
應用
ID ApplicationName TransactionID
-------------------------------------
1 A 100
2 A 101
3 B 102
4 B 103
TransactionID
是獨一無二的。- 應用程序可以有多個TransactionID's。
交易
ID TransactionID RequestNumber
---------------------------------------
1 100 RQ1000
2 101 RQ1000
3 102 RQ1001
4 102 RQ1001
5 102 RQ1002
- 單
TransactionID
可以有多個RequestNumber
- Multple
TransactionID
可以有相同的RequestNumber
現在我的問題是:我想找回它應該是數據如下面
ApplicationName Count(RequestNumber) RequestNumberList
--------------------------------------------------------
A 1 RQ1000
B 2 RQ1001,RQ1002
Count(RequestNumber)
應該是不同RequestNumber
針對該應用RequestNumberList
應該是不同的RequestNumber
這是逗號分隔
我能得到所需的結果:
SELECT
ApplicationName, COUNT(DISTINCT RequestNumber) AS RequestNumber_Count
FROM
Application A
JOIN
Transaction T ON A.TransactionID = T.TransactionID
GROUP BY
ApplicationName
結果:
ApplicationName Count(RequestNumber)
-------------------------------------
A 1
B 2
對於第三列我寫這樣的:
SELECT
ApplicationName,
COUNT(DISTINCT RequestNumber) AS RequestNumber_Count,
COALESCE(RequestNumber + ', ', '')
FROM
Application A
JOIN
Transaction T ON A.TransactionID = T.TransactionID
GROUP BY
ApplicationName, RequestNumber
結果:
ApplicationName Count(RequestNumber) RequestNumberList
---------------------------------------------------------
A 1 RQ1000,
B 1 RQ1001,
B 1 RQ1002,
我需要改變我的第二個查詢以獲得期望的結果
在此先感謝。
這已被要求,並回答了幾十個幾十遍。 –
[在Microsoft SQL Server 2005中模擬組\\concat MySQL函數?]的可能的重複項(https://stackoverflow.com/questions/451415/simulating-group-concat-mysql-function-in-microsoft-sql-server-2005 ) –
我有查詢來獲取第二或第三列不是在同一查詢中..其他問題和這個問題是有區別的..請檢查 – Yashas