美好的一天,與連接mysql查詢的結果有問題,並選擇
我想加入3表我的庫存報告,但我越來越奇怪的結果。
我的查詢
SELECT i_inventory.xid,
count(x_transaction_details.xitem) AS occurrence,
i_inventory.xitem AS itemName,
SUM(i_items_group.or_qty) AS `openingQty`,
avg(x_transaction_details.cost) AS avg_cost,
SUM(x_transaction_details.qty) AS totalNumberSold,
SUM(i_items_group.or_qty) - SUM(x_transaction_details.qty) AS totalRemQty
FROM x_transaction_details
LEFT JOIN i_inventory ON x_transaction_details.xitem = i_inventory.xid
LEFT JOIN i_items_group ON i_inventory.xid = i_items_group.xitem
WHERE (x_transaction_details.date_at BETWEEN '2015-01-18 03:14:54' AND '2015-10-18 03:14:54')
AND i_inventory.xid = 3840
GROUP BY x_transaction_details.xitem
ORDER BY occurrence DESC
見openingQty
列,然後我試圖做一個簡單的查詢來驗證結果,
這裏是我的查詢僅加入2個表i_items_group
表(存儲批次)和i_inventory
表(存儲項目信息)時檢查開標數量。
SELECT i_inventory.xid,
i_inventory.xitem,
SUM(i_items_group.or_qty) AS openingQty,
i_items_group.cost
FROM i_inventory
INNER JOIN i_items_group ON i_inventory.xid = i_items_group.xitem
WHERE i_inventory.xid = 3840
AND (i_items_group.date_at BETWEEN '2015-01-18 03:14:54' AND '2015-10-18 03:14:54')
我的結果是:
這是正確的數據。
我也對我的x_transaction_details
表做過查詢,以驗證它的正確與否。
繼承人我查詢:
select xitem, qty as qtySold from x_transaction_details where xitem = 3840
AND (date_at BETWEEN '2015-01-18 03:14:54' AND '2015-10-18 03:14:54')
結果:
這將總量達到:15 quatitySold。
我對我怎麼拿到3269作爲我查詢的結果,其中作爲真正openingQty應該只有467
我想這個問題是我的查詢與連接,它搞亂只有迷茫然後總結交易數量(雖然我真的不知道)。
你能幫我辨認嗎,並幫我拿出正確的查詢。
它會幫助,如果你可以成立一個小提琴問題 –
好吧@vkp我會盡力做到這一點..我不知道如何做到這一點,雖然xD喜歡如何創建一個表.. – melvnberd