【发布时间】:2011-09-15 12:41:39
【问题描述】:
自从我上次做 Oracle SQL 以来已经有一段时间了,希望有人能告诉我为什么我得到一个 933:
SELECT TRIM(A.ACCOUNTNUMBER) AS INDBDebnmbr
, TRIM(A.VOUCHER) AS INinvoicenmbr
, A.DATE_ AS INinvoiceDate
, A.DUEDATE AS INinvoiceDueDate
, A.TXT AS INDescription
, A.EXCHANGECODE AS INCurrencyCode
, subq.AMOUNTMST AS INOriginalamount
, subq.SETTLEAMOUNTMST AS INpaidAmount
, subq.OPENAMOUNT AS INOpenAmount
FROM (
SELECT DEBTRANS.VOUCHER AS VOUCHER, SUM(DEBTRANS.AMOUNTMST) AS AMOUNTMST
, SUM(DEBTRANS.SETTLEAMOUNTMST) AS SETTLEAMOUNTMST
, SUM(DEBTRANS.AMOUNTMST - DEBTRANS.SETTLEAMOUNTMST) AS OPENAMOUNT
FROM XAL_SUPERVISOR.DEBTRANS DEBTRANS
WHERE DEBTRANS.OPEN = 1 AND
DEBTRANS.TRANSTYPE <> 9 AND
(DEBTRANS.AMOUNTMST - DEBTRANS.SETTLEAMOUNTMST) <> 0 AND
DEBTRANS.DATASET = 'FIK'
GROUP BY DEBTRANS.VOUCHER) subq INNER JOIN DEBTRANS A ON A.VOUCHER = subq.VOUCHER
在 SQL Plus 中 提前致谢,
迈克尔
【问题讨论】:
-
这个查询还有更多内容吗?我刚试过类似的,效果很好。
-
我使用的是 Oracle 8i 吗?
-
WHERE DEBTRANS.OPEN ...中的OPEN有可能是关键字吗? -
不这么认为,SELECT subq.AMOUNTMST AS INOriginalamount , subq.SETTLEAMOUNTMST AS INpaidAmount , subq.OPENAMOUNT AS INOpenAmount FROM ( SELECT DEBTRANS.VOUCHER, SUM(DEBTRANS.AMOUNTMST) AS AMOUNTMST , SUM( DEBTRANS.SETTLEAMOUNTMST) 作为 SETTLEAMOUNTMST ,SUM(DEBTRANS.AMOUNTMST - DEBTRANS.SETTLEAMOUNTMST) 作为来自 XAL_SUPERVISOR.DEBTRANS DEBTRANS 的 OPENAMOUNT,其中 DEBTRANS.OPEN = 1 且 DEBTRANS.TRANSTYPE 9 且 (DEBTRANS.AMOUNTMST - DEBTRANS.SETTLEAMOUNTMST) 0 AND DEBTRANS.DATASET = 'FIK' GROUP BY DEBTRANS.VOUCHER) subq / 运行良好
-
这就是为什么总是在问题中指定环境很重要 - Oracle 版本、操作系统和版本等。
标签: sql oracle ora-00933 oracle8i