通过该文件名从多个表组获取文件名计数

时间:2013-08-01 20:39:39

标签: sql filenames

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

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

我正在寻找这样的输出。

filename  T28COUNT   T29COUNT   T30COUNT

1 个答案:

答案 0 :(得分: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来说应该是完全相同的。