-1

我正在尝试在 DB2 中查询以下内容。T28、T29 和 T30 是表名。它们将文件名作为列在所有表中。我必须按文件名查找所有三个表中的文件名计数。你能帮我吗?

好吧,我正在 DB2 中尝试这个。

我正在寻找这样的输出。

文件名 T28COUNT T29COUNT T30COUNT
4

1 回答 1

0

尝试

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 的工作原理几乎相同。

于 2013-08-01T23:40:39.057 回答