我的新創建的別名ABONO和CARGO存在問題。 ALIASES(用於結果的列名)和SQL查詢正常工作直到我嘗試計算「ABONO-CARGO AS AJUSTE」=> Interbase給出了一個錯誤,它不知道列「ABONO」。正確使用Interbase子查詢中的別名
動態SQL錯誤 SQL錯誤代碼= -206 列未知 ABONO
有什麼不對?
SELECT M."MOV_CUENTA",
(SELECT SUM(MM."MOV_MONTO")
FROM "movimientos" MM
WHERE MM."MOV_TIPOMOV" = 'A' AND MM."MOV_CUENTA" = CS."ID_CUENTAMUN"
GROUP BY MM."MOV_CUENTA"
) AS ABONO,
(SELECT SUM(XM."MOV_MONTO")
FROM "movimientos" XM
WHERE XM."MOV_TIPOMOV" = 'C' AND XM."MOV_CUENTA" = CS."ID_CUENTAMUN"
GROUP BY XM."MOV_CUENTA"
) AS CARGO,
ABONO-CARGO AS AJUSTE
FROM "cuentasSaldo" CS
INNER JOIN "movimientos" M ON (CS."ID_CUENTAMUN" = M."MOV_CUENTA")
INNER JOIN "ajustes" AA ON (M."ID_AJUSTE" = AA."ID_AJUSTE")
INNER JOIN "documentos" DD ON (AA."ID_DOCUMENTO" = DD."ID_DOCUMENTO")
WHERE M."ID_AJUSTE" IN
(SELECT A."ID_AJUSTE"
FROM "ajustes" A
WHERE A."ID_DOCUMENTO" IN
(SELECT D."ID_DOCUMENTO"
FROM "documentos" D
WHERE D."ID_EMPRESA" = 1 AND D."DOC_EDITABLE" = 1
)
)
ORDER BY M."ID_AJUSTE", M."MOV_CUENTA"
真的需要你需要在查詢本身做一個簡單的field1-field2嗎?你不能在你的應用程序部分做這件事嗎?別名你提到的方式不適用於我知道的幾個dbs,所以FireBird的情況也是如此 – nawfal
嗯,我在C++ Builder中編程,因爲我正在使用TDBGrid(C++)組件來填充數據源和數據集來填充我在向數據集添加計算字段時遇到了困難。數據集的__onCalcFields__事件沒有被解僱,所以我決定讓數據庫完成這部分,並計算費用和支付及其總和。 –