如何引用2个别名并在WHERE子句中进行比较?

时间:2016-07-29 22:32:19

标签: sql db2

我有这个

RECORD                               ITEMS      ITEMSTOTAL
------------------------------------ ---------- ----------
ababababaa                                    0          1
ababababab                                    0          0
ababababac                                    0          1
ababababad                                    1          1
ababababae                                    0          2

但是当ITEMS = ITEMSTOTAL

时我需要此输出
RECORD                               
------------------------------------ 
ababababab
ababababad

目前我正在使用此查询作为第一个结果,但我不知道如何获得第二个输出,也许这听起来很明显,但我找不到答案:(

SELECT RECORD, 
(SELECT COUNT(*) FROM TABLE1 WHERE SOMETHING=X) AS ITEMS,
(SELECT COUNT(*) FROM TABLE2 WHERE SOMETHING2=Y) AS ITEMSTOTAL
FROM RECORDS_TABLE
WHERE DELETED=0
--and ITEMS.count = ITEMSTOTAL.count <-- tried something like this but it doesn't work.

1 个答案:

答案 0 :(得分:1)

一种选择是使用子查询并将where条件应用于外部查询。

select * 
from (
   your query here
) t
where items = itemstotal

我认为这不是你的实际查询顺便说一句。 where来自from。此外,那些count语句将返回相同的值。