0
我有一個相當複雜的查詢,我簡化了下來,試圖讓它理解。爲什麼MySQL不會添加這些列?
在下面的示例中,我試圖獲得兩種不同產品的銷售額的SUM
。當我單獨檢索SUM
時,按照前兩列,它們計算正確。
然而,(在第三列),一起加入兩個SUM
查詢時,如果乘積Y已經賣出但NOT產品X,該值返回作爲完全空白。
任何想法,爲什麼這可能是?
SELECT
(
SELECT SUM(IFNULL(product_x_sales.price, 0))
FROM sales AS product_x_sales
GROUP BY product_x_sales.customer_id
) AS "Total Sales of Product X",
SUM(IFNULL(product_y_sales.price, 0)) AS "Total Sales of Product Y",
(
SELECT SUM(IFNULL(product_x_sales.price, 0))
FROM sales AS product_x_sales
GROUP BY product_x_sales.customer_id
) + (
SUM(IFNULL(product_y_sales.price, 0))
) AS "Total Sales of Products X and Y"
FROM customers
JOIN sales AS product_y_sales ON customers.id = product_y_sales.customer_id
GROUP BY agents.id
你能告訴我們採樣的輸入/輸出?考慮到它們不是聚合或包含在「GROUP BY」子句中,是否有意義包含這些子查詢? GROUP BY agents.id'中的別名'agents'是什麼?我不確定簡化查詢是個好主意。 –
對我來說,這看起來就像您想要在右側創建總體總值的數據透視表一樣。您確定在客戶端應用程序中無法輕鬆實現嗎? – Shadow
這是不對的。查詢的結果集將不正確。基本上,你的查詢有**三個**不同的SELECT語句做他們自己的事情。 –