Sql 从三个表中选择计数,并按一个字段分组

Sql 从三个表中选择计数,并按一个字段分组,sql,sql-server,Sql,Sql Server,我有三个表,其中我想按DateStart DateEnd和一个外键进行分组并计算行数 表1: start end FK 10/01/2014 12/01/2014 5 10/01/2014 13/01/2014 5 table 2 10/01/2014 12/01/2014 5 10/01/2014 13/01/2014 6 table 3 10/01/2014 12/01/2014

我有三个表,其中我想按DateStart DateEnd和一个外键进行分组并计算行数

表1:

start             end           FK

10/01/2014    12/01/2014    5
10/01/2014    13/01/2014    5


table 2
10/01/2014    12/01/2014    5
10/01/2014    13/01/2014    6

table 3 

10/01/2014    12/01/2014    5
10/01/2014    13/01/2014    7


Result

10/01/2014    12/01/2014    5     3 (rows)
10/01/2014    13/01/2014    5     1
10/01/2014    13/01/2014    6     1
10/01/2014    13/01/2014    7     1
编辑: 这是我的尝试(针对前两个表),但不符合示例:

SELECT     query.IDchild as IDchild,
       Count(query.Number) as Number,
       query.DateStart as DateStart,
       query.DateEnd as DateEnd
(SELECT     RES.IDchild as IDchild,
       Count(RES.Number) as Number,
       RES.DateStart as DateStart,
       RES.DateEnd as DateEnd
FROM [dbo].[VA_R] as RES
WHERE (condition)
GROUP BY RES.IDchild  ,RES.DateStart,RES.DateEnd

Union all

SELECT     RES_o.IDchild as IDchild,
       Count(RES_o.Number) as Number,
       RES_o.DateStart as DateStart,
       RES_o.DateEnd as DateEnd
FROM [dbo].[VA_R_o] as RES_o
WHERE (condition)
GROUP BY RES_o.IDchild  ,RES_o.DateStart,RES_o.DateEnd, RES_o.PK_R) as query

GROUP BY RESqueryo.IDchild  ,query.DateStart,query.DateEnd

应该这样做。首先合并所有结果,然后按相关字段分组。根据评论中所述。

联合所有人,根据结果分组。此外,它是列,不是字段。@MitchWheat请参见编辑
SELECT T.start, T.end, T.FK, COUNT(*)
FROM (
    SELECT start, end, FK
    FROM YourTable1

    UNION ALL

    SELECT start, end, FK
    FROM YourTable2

    UNION ALL

    SELECT start, end, FK
    FROM YourTable3
) AS T
GROUP BY T.start, T.end, T.FK