凹凸の行を持つテーブルの合計:私はselect * from payment_tbl inner join discount_tbl
を行う場合SQL:私はこのSQL文を持って
SELECT
payment.receipt AS or_no,
payment.payment_dt,
payment.vno,
concat(p.family_name, ', ', p.given_name, ' ', p.middle_name, COALESCE(', ' || p.suffix, '')) AS name,
$$English's Special$$ AS department,
SUM(payment.amount) AS income,
SUM(discount.amount) AS discount,
0 AS other_discount,
0 AS tax
FROM payment_tbl payment
LEFT JOIN person p ON payment.person_id = p.id
INNER JOIN discount_tbl discount on payment.vno = discount.vno
GROUP BY or_no, name, payment_dt, payment.vno, payment.amount
UNION ALL
...
SELECT * FROM payment_tbl:
receipt | amount | vno
1 | 5000 | V2016197
SELECT * FROM discount_tbl;
id | vno | gross | amount (20% discount)
1 | V2016197 | 0 | 0
2 | V2016197 | 0 | 0
3 | V2016197 | 3000 | 600
、結果はこのようにSUM(payment.amount)
が15000の代わりに5000
どのようにして2つのテーブルに参加できますか?
あなたのロジック/問題は、私には明確ではありません。 2つのテーブルを結合しても、1つのレコードだけが 'gross'に対してゼロ以外の値を持ちます。それでは、ここで何を達成しようとしていますか? –