1

合計を計算する 2 つのサブクエリがあります。両方の Querys の結果で Artithmetic Minus(-) を実行したいと思います。例: Query1: 400 Query2: 300 結果は 100 になるはずです。

明らかな基本 - クエリでは機能しません。マイナスは、セットの MINUS として機能します。どうすればこれを解決できますか? あなたはなにか考えはありますか?

SELECT CustumersNo FROM Custumers WHERE
(
SELECT SUM(value) FROM roe WHERE roe.credit = Custumers.CustumersNo 
-
SELECT SUM(value) FROM roe WHERE roe.debit = Custumers.CustumersNo
)
> 500

Informix の使用 - その点を見逃してすみません

4

2 に答える 2

1

あなたが試したような何かがうまくいくはずです。これは構文の問題である可能性があり、使用している SQL の種類に依存する場合があります。ただし、次のようなアプローチの方が効率的です。

更新: null に問題があったようです。null を適切に処理するように更新しました。

select CustumersNo from (
    select CustumersNo, 
           sum(coalesce(roecredit.value,0)) - sum(coalesce(roedebit.value,0)) 
               as balance 
        FROM Custumers 
        join roe roecredit on roe.credit = Custumers.CustumersNo 
        join roe roedebit on roe.debit = Custumers.CustumersNo 
        group by CustumersNo
    )
    where balance > 500

警告: 特に Informix の経験はありません。

于 2012-10-03T13:11:10.153 に答える