DB2 SQL Count跨越一对多关系

时间:2015-11-12 22:16:49

标签: sql count db2 ibm-midrange

我在IBM DB2数据库中有一对多关系。我无法想出一种方法来描述我在文字中做的很容易,所以我要链接一个SQLFiddle。

这是一个关于我正在做什么的工作SQLFiddle; Click Here

SQLFiddle的工作方式与我需要的完全相同。我的问题是,我使用的是IBM DB2数据库,而COUNT函数似乎不起作用。有没有人有办法以IBM DB2兼容的方式返回SQLFiddle所做的事情?

这是我从i Navigator获得的错误; Click Here

1 个答案:

答案 0 :(得分:1)

您正在通过错误的列聚合。我想这是你想要的查询:

SELECT Table1.quote, COUNT(Table2.quote) as TotalItem
FROM Table1 LEFT JOIN
     Table2 
     ON Table1.quote = Table2.quote
GROUP BY Table1.quote
---------^

您需要按Table1.quote进行汇总,因为Table2.quote可能是NULL,因为LEFT JOIN

编辑:

您的特定问题似乎是您有两个具有相同名称的表。只需使用列别名:

SELECT t1.quote, COUNT(t2.quote) as TotalItem
FROM Table1 t1 LEFT JOIN
     Table2 t2
     ON t1.quote = t2.quote
GROUP BY t1.quote;