In MySQL I have two tables:
Table MC:
----------------
|TransNo | Qty |
|--------|-----|
| xxx1 | 4 |
| xxx3 | 3 |
and
Table Amex:
----------------
|TransNo | Qty |
|---------|-----|
| xxx1 | 2 |
| xxx5 | 1 |
I need to sum the Qty
column from table MC
(eq. 7) and table Amex
(eq. 3) and have result as Total Qty.
When I do
SELECT (SUM(amex.Qty) + SUM(mc.Qty)) as total_qty from amex, mc
I get the cartesian product (20), but the correct answer I need is 10. How do I need to change this query to get the correct result?
And what about:
If you wish to avoid using Union or Union ALL (probably for efficiency reasons), then the following works:
Here's an example for if you wish to expand this out to include a Group By condition. Let's say we have a Cust_ID on both MC and Amex to identify the customer which made each order, and we want to know the sums for each customer. The code would then look like this:
If a Customer table exists in the database, then this can be simplified to: