我有三個表格: - - 訂單(給我訂單日期) - 訂單行項目(使我能夠將活動結果鏈接到訂單日期) - 活動項目(給我的活動結果)MySQL - 加入兩個查詢(UNION?)
我試圖在圖形上繪製的效果,並能成功地創造減去所有結果的數組< = 50爲使用以下查詢通過: -
SELECT
YEAR(od_date) AS Year,
MONTH(od_date) AS Month,
test_name,
pd_name,
COUNT(test_result) AS Passed
FROM tbl_lab_item
INNER JOIN tbl_order_item
ON tbl_order_item.od_item_id = tbl_lab_item.od_item_id
INNER JOIN tbl_order
ON tbl_order.od_id = tbl_order_item.od_id
WHERE tbl_order.od_date >= DATE_SUB(now(), INTERVAL 12 MONTH)
AND test_name = 'Test'
AND pd_name = 'Product'
AND test_result <= 50
AND od_customer_id = '4'
GROUP BY test_name, YEAR(od_date), MONTH(od_date)ASC
我可以使用相同的查詢但使用Count(test_result)對失敗結果執行類似操作, AS在選擇中失敗,並將WHERE條件更改爲> 50。
我想在一個查詢中完成另外兩件事情,如果可能的話。
首先,我希望能夠將通過和失敗結合到相同的查詢中,以便得到月份,通過次數和失敗次數。其次,爲了在圖表上繪製所有這些,我可能需要顯示所有月份,即使在Passes,Fails或兩者都沒有結果的情況下也是如此。從我對UNION的理解來看,這些查詢需要具有相同的形狀,所以我可以將一個Null作爲失敗添加到Pass查詢中,反之亦然,但是我怎樣才能將它合併爲一個讓所有月份顯示的方法?
我已經在這裏看過How to get a count even if there are no results corresponding mysql?以獲得所有的月份顯示,但是我沒有知識將其整合到我的查詢中。
希望這一切都有意義嗎?
這個作品謝謝你,但只顯示結果存在的月份。即使當月沒有「通行證」或「失敗」,是否還有強制顯示所有12個月的方法? – Jason
這個答案讓我最接近我期望的解決方案,並且是我最終使用的一個:) – Jason