1

2 つの結果セットに 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を実行しようとしている結果にnullである追加の列を追加する必要があります。

例:

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

結合 (UNION ALL)

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

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 に答える