私は以下のようなクエリを実行しようとしています:PHP MySQLのSUMマイナスSUMを選択し
SELECT (SUM(amount) - SUM(refundAmount)) as amount FROM orders WHERE $invoiceFilter AND $websiteFilter
それは正しく金額欄の合計を取得していますが、それは、払い戻し額を差し引いていません。
このようなクエリの正しい構文は何ですか?
私は以下のようなクエリを実行しようとしています:PHP MySQLのSUMマイナスSUMを選択し
SELECT (SUM(amount) - SUM(refundAmount)) as amount FROM orders WHERE $invoiceFilter AND $websiteFilter
それは正しく金額欄の合計を取得していますが、それは、払い戻し額を差し引いていません。
このようなクエリの正しい構文は何ですか?
はこれを試してください:あなたはFROM
句でサブクエリを使用することができます
SELECT SUM(amount - refundAmount) AS `amount`
FROM orders
WHERE
invoice = $invoiceFilter
AND website = $websiteFilter;
処理する必要のあるデータをフィルタリングするための参照列のようなものがありません。ような何か:
SELECT (SUM(amount) - SUM(refundAmount)) AS amount
FROM orders
WHERE
<a_column> = $invoiceFilter
AND <another_column> = $websiteFilter;
。
SQL:
SELECT amount - refund
FROM (SELECT SUM(amount) as amount
FROM orders
WHERE invoice = 'invoiceFilter' AND website = 'websiteFilter') as a,
(SELECT SUM(refundAmount) as refund
FROM orders
WHERE invoice = 'invoiceFilter' AND website = 'websiteFilter') as b;
PHP:
mysql_query("SELECT amount - refund
FROM (SELECT SUM(amount) as amount
FROM orders
WHERE invoice = '" . mysql_real_escape_string($invoiceFilter). "'
AND website = '" . mysql_real_escape_string($websiteFilter). "') as a,
(SELECT SUM(refundAmount) as refund
FROM orders
WHERE invoice = '" . mysql_real_escape_string($invoiceFilter). "'
AND website = '" . mysql_real_escape_string($websiteFilter). "') as b; ");
これは、正しいことがいくつかのサンプルデータを提供し、ご希望の結果が参考になります必要があります。 – Blank