2016-11-08 145 views
-2

我一直在試圖找到一個解決方案,我的問題現在幾個小時,不能拿出正確的查詢。我有兩張表,stocktake_scans和stocktake_items。我需要從兩個表中選擇數據並將它們組合在一起。我現在的查詢是這樣的:MySQL - 集團由UNION查詢

SELECT 
a.department_description, a.sub_department_description, a.total_cost, a.total_retail, SUM(a.qty) AS qty, a.total_vat, a.vat_rate 
FROM ( 
    SELECT (CASE WHEN TRIM(IFNULL(sp.department_description, '')) = '' THEN 'N/A' ELSE sp.department_description END) AS department_description, 
    (CASE WHEN TRIM(IFNULL(sp.sub_department_description, '')) = '' THEN 'N/A' ELSE sp.sub_department_description END) AS sub_department_description, 
    SUM(sp.unit_cost_price * ss.quantity) AS total_cost, 
    SUM(sp.unit_retail_price * ss.quantity) AS total_retail, 
    sum(ss.quantity) AS qty, 
    (SUM(sp.unit_cost_price*ss.quantity)) * (sv.vat_rate/100) AS total_vat, 
    sv.vat_rate as vat_rate 
    FROM 
     stocktake_scans ss 
     INNER JOIN stocktake_products sp ON ss.stocktake_product_id = sp.stocktake_product_id 
     LEFT JOIN stocktake_vat_codes sv ON sv.vat_code = sp.vat_code AND sv.stocktake_id = '5778' 
     WHERE ss.stocktake_id = '5778' 
     GROUP BY sp.department_description, sp.sub_department_description 
    UNION ALL 
     SELECT (CASE WHEN TRIM(IFNULL(si.department_description, '')) = '' THEN 'N/A' ELSE si.department_description END) AS department_description, 
     'N/A' as sub_department_description, 
     SUM(si.unit_cost_price * si.quantity) AS total_cost, 
     SUM(si.unit_retail_price * si.quantity) AS total_retail, 
     sum(si.quantity) AS qty, 
     SUM(si.unit_cost_price * quantity)*(sv.vat_rate/100) AS total_vat, 
     sv.vat_rate as vat_rate 
     FROM stocktake_items si 
     LEFT JOIN stocktake_vat_codes sv ON sv.vat_code = si.vat_code AND sv.stocktake_id = '5778' 
     WHERE si.stocktake_id = '5778' GROUP BY si.department_description) a 
    GROUP 
     BY a.department_description, a.sub_department_description 

這並沒有完全完成這項工作。我從stocktake_scans獲取所有數據,然後從stocktake_items獲取數據。

我得到了下面的第一個結果 Image 1

,然後在Excel文件的最後,我也得到這個

Image 2

什麼是這樣做的正確的方式,使這兩個酒精數字顯示在一個地方?

+0

見http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-添加ORDER BY a.department_description, a.sub_department_description '這是一個非常簡單的sql查詢 – Strawberry

+0

'這並沒有完全做好這項工作。「那麼應該做什麼工作?向我們展示樣本數據當前輸出和預期輸出。 –

+0

但我確實說過目前的產出和我的期望。正如我所說,我得到了兩個酒精部門的結果,一個來自掃描表,另一個來自項目表。從圖像上可以看出,excel文件中有兩個單獨的位置。我的預期結果是讓他們分組在一起,以便酒類部門不重複。 – ArtleMaks

回答