2009/02/22

Join related table and count rows or sum

sql server 2005
count rows:
SELECT * FROM Table1
LEFT JOIN
    (SELECT Level1ID, COUNT(Level2ID) AS Total FROM Table2 GROUP BY Level1ID) AS RelatedTable
ON
    Table1.Level1ID = RelatedTable.Level1ID
WHERE
    SomeColumn = Something
count sum:
SELECT * FROM Table1
LEFT JOIN
    (SELECT Level1ID, SUM(Bonus) AS TotalBonus FROM Table2 GROUP BY Level1ID) AS RelatedTable
ON
    Table1.Level1ID = RelatedTable.Level1ID
WHERE
    SomeColumn = Something