2017-10-07 57 views
1

這裏是我的查詢:計算「由集團不符合預期的結果

select product_name, (sum(item_price - discount_amount) * (quantity)) AS product_total 
from products inner join order_items 
using(product_id) 
group by product_name 

我查詢的輸出:

My query's output

預期輸出:

Expected Output

我幾乎可以顯示所有東西,但Gibson Les Paulproduct_total是錯誤的,最後一行不其product_total顯示的N個ull

+1

更新您的問題,並顯示您的相關表架構.. – scaisEdge

+0

(以下簡稱「'NULL'」很有趣,反正 - ?id爲產品,但沒有名字*外*加入) – greybeard

+0

@greybeard我認爲,首先,但它是一個彙總值。 – wwkudu

回答

0

內部聯接意味着你只能看到有PRODUCT_NAME ORDER_ITEMS。使用外部聯接來查看沒有product_name的order_items。另外,您的sum應該是最外層的功能。也許是這樣的:

select product_name, sum((item_price - discount_amount) * (quantity)) AS product_total 
from order_items left join products 
    on order_items.product_id=products.product_id 
group by product_name 

如果需要的話,擡頭的內部和外部連接,like this question例如一個解釋。

但是,仔細看看您的數據,加入類型可能不是null行的問題。最後一行僅僅是其他所有行的總和,因此在group by子句後面添加with rollup會爲您提供該行。

+0

產生與我的查詢 –

+0

相同的輸出也許給我們一個來自兩個表的數據樣本,包括產品名稱爲空的行。 – wwkudu

+0

https://snag.gy/hPetzX.jpg下面加入了這兩個表格的鏈接 –