加入并计入SQL Server

时间:2010-12-28 18:37:37

标签: sql-server

我有两张桌子;我们称之为TableA和TableB。 TableB的每个元素以多对一关系与TableA的元素相关联。 TableA的某些元素可能在TableB中没有对应的元素。

我需要选择TableA中的每个元素,以及一个列,对于结果集中的每一行,它将包含TableB中与TableA中该行相关联且具有特定属性的元素数。

使用MS SQL Server 2008(需要也可以在SQL Server 2005中使用)。

2 个答案:

答案 0 :(得分:9)

<强>更新

SELECT A.elementid, A.column1, A.column2, A.column3, 
       COUNT(CASE WHEN B.someColumn > 0 THEN B.elementid ELSE NULL END) Q
FROM TableA A
LEFT JOIN TableB B
ON A.elementid = B.elementid
GROUP BY A.elementid, A.column1, A.column2, A.column3

答案 1 :(得分:3)

SELECT TableA.MyColumn, COUNT(TableB.SomeColumn) AS MyCount
FROM TableA
LEFT OUTER JOIN TableB ON TableA.TableAKeyColumn = TableB.TableAKeyColumn
GROUP BY TableA.MyColumn