我无法在Oracle中运行此查询,因为它不允许在IN子句中使用多个列名。
CURSOR temp_3((VOUCHER_NO IN NUMBER) IS
SELECT *
FROM INVOICE_ITEM_TAB
WHERE INVOICE_ID, PO_REF_NUMBER IN (
SELECT INVOICE_ID, PO_REF_NUMBER,
FROM INVOICE_TAB
WHERE VOUCHER_NO_REF IN (
SELECT VER_NO
FROM WORK_ORDER_CODING_TAB
WHERE VER_NO=VOUCHER_NO
)
)
有人可以帮助我
答案 0 :(得分:2)
改为使用exists
。
SELECT *
FROM INVOICE_ITEM_TAB iit
WHERE exists
SELECT null,
FROM INVOICE_TAB it
WHERE
iit.INVOICE_ID = it.INVOICE_ID and
iit.PO_REF_NUMBER = it.PO_REF_NUMBER and
it.VOUCHER_NO_REF IN (
SELECT VER_NO
FROM WORK_ORDER_CODING_TAB
WHERE VER_NO=VOUCHER_NO
)
)
答案 1 :(得分:0)
我想要你喜欢的东西
从表格中选择*,其中col(从列表中选择ID =' xyz')
**还有一种方式**
从表中选择*(' aa',' bb',' cc')