Need to show the following columns (3) using UNION to return:
- All customers who do not have an invoice
- All products that were not sold
- Category: Is this related to "customer" or "product"? Print "customer or "product"
- ID: Customer.id (category="customer") or product.id (category="product")
- Name: customer.customer_name (category="customer") or product.product_name (category="product")
Tables:
Customer
- id
- customer_name
- city_id
- customer_address
- contact_person
- phone
Product
- id
- sku
- product_name
- product_description
- current_price
- quantity_in_stock
Invoice
- id
- invoice_number
- customer_id
- user_account_id
- total_price
- time_issued
- time_due
- time_paid
- time_canceled
- time_refunded
Invoice_Item
- id
- invoice_id
- product_id
- quantity
- price
- line_total_price
So far have the following:
SELECT
category,
CASE
WHEN category = 'customer' THEN c.id
WHEN category = 'product' THEN p.id
END AS 'id',
CASE
WHEN category = 'customer' THEN c.customer_name
WHEN category = 'product' THEN p.product_name
END AS 'name'
FROM
(
SELECT
CASE
WHEN c.id = c.id THEN 'customer'
WHEN p.id = p.id THEN 'product'
END as 'category'
FROM
customer as c
LEFT Join -- Left join to show all customers even those with & without invoices
invoice as i
ON c.id = i.customer_id
AND i.id IS NULL -- Gives me all customers who do not have an invoice
JOIN invoice_item as ii
ON i.id = ii.invoice_id
Join product p
ON p.id = ii.product_id
) tb1
UNION ALL
SELECT
category,
CASE
WHEN category = 'customer' THEN c.id
WHEN category = 'product' THEN p.id
END AS 'id',
CASE
WHEN category = 'customer' THEN c.customer_name
WHEN category = 'product' THEN p.product_name
END AS 'name'
FROM
(
SELECT
CASE
WHEN c.id = c.id THEN 'customer'
WHEN p.id = p.id THEN 'product'
END as 'category'
FROM
product as p
LEFT JOIN -- Left join to show all products even those that sold and not sold
invoice_item as ii
ON p.id = ii.product_id
AND ii.invoice_id IS NULL -- Gives me products that didnt sell
JOIN invoice as i
ON ii.invoice_id = i.id
) tb2
Open to any suggestions as I'm stuck trying to figure out how to show the category as either "product" or "customer". Thanks in advance!