次のクエリがあります。
SELECT user_id, SUM( credit ) AS cred, SUM( debit ) AS deb FROM account WHERE user_id = '35'
貸方から借方を差し引いて、1 つの列に表示するか、変数の値として表示したい
SUM
これは機能するはずで、おそらく他の 2 つのsを実行するよりもわずかに高速です。
SELECT a.user_id,
a.cred,
a.deb,
a.deb - a.cred AS value
FROM (SELECT user_id,
Sum(credit) AS cred,
Sum(debit) AS deb
FROM account
WHERE user_id = '35') a
複数のユーザーがいる場合は、次のようなことができます。
SELECT a.user_id,
a.cred,
a.deb,
a.deb - a.cred AS value
FROM (SELECT user_id,
Sum(credit) AS cred,
Sum(debit) AS deb
FROM account
WHERE user_id IN (35, 36, 39)
GROUP BY user_id) a
同じ行で差を計算できます
SELECT user_id,
SUM(credit) AS cred,
SUM(debit) AS deb,
SUM(credit) - SUM(debit) total
FROM account
WHERE user_id = 35
更新 1
SELECT user_id,
SUM(credit) AS cred,
SUM(debit) AS deb,
SUM(credit) - SUM(debit) total
FROM account
WHERE user_id IN (30,31,32,33,34,35)
GROUP BY user_ID
更新 2
SELECT user_id,
SUM(credit) AS cred,
SUM(debit) AS deb,
SUM(credit) - SUM(debit) total
FROM account
WHERE user_id IN (30,31,32,33,34,35)
GROUP BY user_ID
HAVING (SUM(credit) - SUM(debit)) < 10