CTE与空白表达

时间:2015-11-16 17:11:31

标签: sql oracle oracle11g common-table-expression

我正在构建一组相当大的表格数据。在这些数据中,我有员工及其接受总数的公司总数。我遇到的问题是我使用的是CTE,我的一个表达式计算特定项目的数量。计数不返回任何内容,通过在最终查询中包含此表达式,整个结果集为空。我确定我在这里错过了一些简单的东西:

SELECT DISTINCT C.ID,
C.NAME,
P.LOCATION,
...
NVL(T.A, 0)
...
FROM COMPANY C
INNER JOIN PLACE P
ON P.P_ID = C.P_ID,
...
COMPANY_TOTAL_A T;

此查询不返回任何内容,当我在最终查询中使用它时,整个结果集为空。如果我排除它,那么我得到了我期待的所有行。它看起来像这样?

A

由于这个值与所有员工相关,我希望它只返回项目在班级will deliver 11/07 in USA at 12:30 with conf# 12345678 时的公司总数。即使那是0,我还以为0会被退回?

1 个答案:

答案 0 :(得分:2)

按照您所依赖的同一列进行分组是没用的。你想要一个简单的:

SELECT count(*)
FROM company_totals_final
WHERE item = 'A'

count(item)计算item不为null的所有行,但条件ITEM = 'A'无论如何都会删除这些行。所以它也不需要。