我已經合併的金融交易(每個兩家公司)的兩個長名單到一個表(實際上是這裏的原因並不重要,一個DataView)。這兩家公司與很多客戶做生意。 我想要的是一個查詢,它返回每個公司與每個客戶進行的金融交易總數。
例如:
Customer Company A Company B
Customer X 10 0
Customer Y 15 26
Customer Z 0 71
因此,每個客戶已經處理了至少有一家公司,可能兩家公司。
到目前爲止我的查詢已經到目前爲止。 。 。
SELECT v.[Company],
v. [AnalysisName],
s1.CMTtrans,
s2.CFLtrans
FROM vMainCustTrans AS v
LEFT JOIN (SELECT [AnalysisName], COUNT([AnalysisName]) AS CMTtrans
FROM vMainCustTrans
WHERE [Company] = 'Money'
GROUP BY [AnalysisName]) AS s1
ON v.[AnalysisName] = s1.[AnalysisName]
LEFT JOIN (SELECT [AnalysisName], COUNT([AnalysisName]) AS CFLtrans
FROM vMainCustTrans
WHERE [Company] = 'Forex'
GROUP BY [AnalysisName]) AS s2
ON v.[AnalysisName] = s2.[AnalysisName]
ORDER BY v.[Company], v.[AnalysisName]
現在子查詢(S1)返回89個客戶 子查詢(S2)返回37個客戶 然而,整個查詢返回18989線 應該有89和126(即,89 + 37)行,這取決於之間A公司和B公司之間有多少重疊部分
有人可以指出我的查詢出了什麼問題,以及我如何產生我想要的結果;即客戶名單,其中兩個客戶的交易數量爲兩個。
你能提供兩個表的DD?我的意思是查詢所需的兩個表中的列? – Dhwani
您顯示的輸出會交叉結果,但查詢不會。這幾乎聽起來像你試圖讓客戶和公司加入笛卡爾。在這種情況下,這是NumberofCustomers * 2。你的左連接不會完成。 –