2010-07-27 66 views
1

我正在努力進入一個SQL狂潮,希望有人可以幫助!SQL表A左連接表B和表B的頂部

我有2個表,其基本上是記錄和結果,我想加入2代表一起,計算每個記錄的結果(0或更多),我已經與有很容易的數量:

Select records.Id, (IsNull(Count(outcomes.Id),0)) as outcomes 
from records 
Left Join 
outcomes 
on records.Id = outcomes.Id 
group by 
records.Id 

結果表中還有一個時間戳,我想要做的是在結果集中包含最後一個結果,如果我添加了我的查詢,它會爲每個記錄組合的結果生成一條記錄。

任何SQL專家都可以指向正確的方向嗎?

乾杯,

+0

什麼數據庫您使用的? – Yellowfog 2010-07-27 11:22:06

回答

1

嘗試:

SELECT 
    dt.Id, dt.outcomes,MAX(o.YourTimestampColumn) AS LastOne 
    FROM (SELECT --basically your original query, just indented differently 
       records.Id, (ISNULL(COUNT(outcomes.Id),0)) AS outcomes 
       from records 
        LEFT JOIN outcomes ON records.Id = outcomes.Id 
       GROUP BY records.Id 
     ) dt 
     INNER JOIN outcomes o ON dt.Id = o.Id 
    GROUP BY dt.Id, dt.outcomes 
+0

輝煌,幾乎完美! 只需要將第二個Join加入到左連接中,否則我就失去了結果中沒有任何內容的記錄。謝謝! – HeHasMoments 2010-07-27 11:41:22

相關問題