1

我在两个结果集上有一个 UNION ALL。这导致如下所示。

总稳定

FAMILYNAME-----FIRSTNAME------NUMBER------TOTAL
Brown          Dave           1234        500.00
Brown          Dave           1234        300.00
Smith          Frank          4321        123.00
Smith          Frank          4321        456.00

我运行以下查询...

SELECT TOTALSTABLE.FAMILYNAME,
  TOTALSTABLE.FIRSTNAME,
  TOTALSTABLE.NUMBER,
  SUM(TOTALSTABLE.TOTAL) COMBINEDTOTAL
FROM TOTALSTABLE
GROUP BY TOTALSTABLE.FAMILYNAME,
  TOTALSTABLE.FIRSTNAME,
  TOTALSTABLE.NUMBER

这给了我类似...

FAMILYNAME-----FIRSTNAME------NUMBER------COMBINEDTOTAL
Brown          Dave           1234        800.00
Smith          Frank          4321        579.00

这就是我需要的。但是,我需要在尝试执行 UNION ALL 的结果中添加一个为空的附加列。

例子:

T1

FAMILYNAME-----FIRSTNAME------NUMBER------TOTAL-------DATE
Brown          Dave           1234        500.00      01/01/2001
Smith          Frank          4321        123.00      01/01/2001

T2

FAMILYNAME-----FIRSTNAME------NUMBER------TOTAL-------DATE
Brown          Dave           1234        300.00      NULL
Smith          Frank          4321        456.00      NULL

组合(联合所有)

FAMILYNAME-----FIRSTNAME------NUMBER------TOTAL-------DATE
Brown          Dave           1234        500.00      01/01/2001
Brown          Dave           1234        300.00      NULL
Smith          Frank          4321        123.00      01/01/2001
Smith          Frank          4321        456.00      NULL

我需要像第一个示例中那样使用不为空的日期来获得总和。

期望结果的示例。

FAMILYNAME-----FIRSTNAME------NUMBER------COMBINEDTOTAL----DATE
Brown          Dave           1234        800.00           01/01/2001
Smith          Frank          4321        579.00           01/01/2001

谁能告诉我我需要在这里做什么?干杯。

4

2 回答 2

1

听起来你只是想要

SELECT familyName,
       firstName,
       number,
       SUM(total) combinedTotal,
       MAX(date) date
  FROM (<<union all query>>)
 GROUP BY familyName,
          firstName, 
          number
于 2012-05-18T02:03:38.063 回答
-1

如您所述,您可以尝试遵循代码

SELECT * FROM 
(SELECT c1, c2, c3 FROM T1
UNION ALL
SELECT c1, c2, c3 FROM T2 
) T
WHERE T.c3 IS NOT NULL
GROUP BY T.c1, T.c2, T.c3
于 2012-05-18T02:19:00.410 回答