1

DBISAM を使用して次のクエリを実行しています

SELECT((SUM(sales.sale_amount)
+SUM(sales.vat_amount))
-SUM(payments.fee_amount)) 
AS Balance,account_details.id FROM account_details 
JOIN sales ON account_details.id = sales.account_id 
JOIN payments ON account_details.id = payments.account_id GROUP BY account_details.id

ただし、販売には 3 つの異なるタイプがあります - sales.sale_type は 0、1、または 2 に相当します。0 の場合、正の sales_amount と vat_amount を追加する必要があり、ELSE の負の値を使用する必要があります。

色々試してみました

IF(sales.sale_type=0)

BEGIN
...
END
ELSE
BEGIN
...
END

役に立たず、実行していないスクリプトでエラーのみが発生します。これらのエラーが DBISAM に限定されているのか、一般的な SQL なのかはわかりません。

どんな助けでも感謝します。

ありがとう

4

1 に答える 1

0

DBISAM には CASE ステートメントがありますか?

SELECT
  CASE WHEN sales.sale_type=0
       THEN SUM(sales.sale_amount) + SUM (sales.vat_amount) - SUM(payments.fee_amount)
       ELSE SUM(sales.sale_amount) - SUM (sales.vat_amount) + SUM(payments.fee_amount)
       END
FROM
  <blah>
于 2011-08-09T15:25:51.227 に答える