DB2で次のクエリを実行しようとしています。T28、T29、T30 はテーブル名です。すべてのテーブルにある列としてファイル名があります。ファイル名でグループ化された3つのテーブルすべてでファイル名の数を見つける必要があります。手伝ってくれますか?
さて、私はDB2でこれを試しています。
このような出力を探しています。
ファイル名 T28COUNT T29COUNT T30COUNT
試す
SELECT filename,
SUM(CASE WHEN t = 28 THEN 1 ELSE 0 END) t28count,
SUM(CASE WHEN t = 29 THEN 1 ELSE 0 END) t29count,
SUM(CASE WHEN t = 30 THEN 1 ELSE 0 END) t30count
FROM
(
SELECT 28 AS t, filename
FROM t28
UNION ALL
SELECT 29 AS t, filename
FROM t29
UNION ALL
SELECT 30 AS t, filename
FROM t30
) q
GROUP BY filename
ORDER BY filename
これは SQL Server 用の SQLFiddleデモですが、DB2 でもほぼ同じように動作するはずです。