I have two tables:
Table 1: Category Table
CatCode | CatDesc | Total |
---|---|---|
CAT0001 | Drinks | 22 |
CAT0002 | Food | 12 |
Table 2: Product Table
ProdCode | ProdDesc | Amount | CatCode |
---|---|---|---|
P00001 | Coke | 10 | CAT0001 |
P00002 | Pepsi | 12 | CAT0001 |
P00003 | Burger | 5 | CAT0002 |
P00004 | Fries | 5 | CAT0002 |
P00005 | Eggs | 2 | CAT0002 |
I want to ask if it is possible to make a sql result where Table 1 contains the Category Code, Category Description, and Total but in the next column contains Table 2 which contains the Product Code, Product Name, and Quantity?
Expected outcome:
CAT0001 | Drinks | 22 |
P00001 | Coke | 10 |
P00002 | Pepsi | 12 |
CAT0002 | Food | 12 |
P00003 | Burger | 5 |
P00004 | Fries | 5 |
P00005 | Eggs | 2 |
CodePudding user response:
- Try this (tested on dbfiddle)
SELECT catcode as code, catdesc as name, total as amount
FROM (
SELECT catcode, catdesc, total, catcode AS catcode2 FROM category
UNION ALL
SELECT prodcode, proddesc, amount, catcode AS catcode2 FROM product
) tmp
ORDER BY catcode2, catcode;