我有 5 張桌子(A、B、C、D)。所有都是內部連接并用于顯示資料。另一個表 E 的列 sourceId 在列 A 中有參考。我需要在主查詢中顯示出現次數。例如:
A.*,B.*,C.*,D.*
FROM A
INNER JOIN B
ON A.BId= B.Id
INNER JOIN C
ON A.CId = C.Id
INNER JOIN D
ON A.Did= D.Id
E 表可以包含 2 或 1 或 0 條參考表 A 的記錄。我需要在上述查詢中顯示出現次數,并相應地從 0 到 2 排序。有人可以幫我寫這個嗎?我不知道我應該如何在這里繼續使用聚合功能。輸出應如下所示:
E.Count|A.*|B.*|C.*|D.*|
uj5u.com熱心網友回復:
像這樣的東西:
select A.*,B.*,C.*,D.*,E_count
FROM A
INNER JOIN B ON A.BId= B.Id
INNER JOIN C ON A.CId = C.Id
INNER JOIN D ON A.Did= D.Id
outer apply (
select count(*) as E_count
from E
where E.sourceId = A.Id
) E
要么
select A.*,B.*,C.*,D.*,E_count
FROM A
INNER JOIN B ON A.BId= B.Id
INNER JOIN C ON A.CId = C.Id
INNER JOIN D ON A.Did= D.Id
left join (
select count(*) as E_count
from E
group by E.sourceId
) E on E.sourceId = A.Id
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/435485.html
