我試圖創建我們的訂單的摘要報告,但無法在單個查詢中提取所有我需要的數據。一個列的MySQL SUM,ID列的DISTINCT
我想這些數據中提取:
- 小計 - 所有訂單的總和deliveryTotal
- 訂單 - - DISTINCT orderIds的COUNT
- 量全部出售價格
- 交付總量的SUM - 所有訂購數量的總和
訂單表(此示例簡化)
| orderId | deliveryTotal | total |
|---------|---------------|-------|
| 1 | 5 | 15 |
| 2 | 5 | 15 |
| 3 | 7.50 | 27.50 |
訂單項目表
| orderItemId | orderId | productId | salePrice | quantity |
|-------------|---------|-----------|-----------|----------|
| 1 | 1 | 1 | 10 | 1 |
| 2 | 2 | 1 | 10 | 1 |
| 3 | 3 | 1 | 10 | 1 |
| 4 | 3 | 2 | 10 | 1 |
我提取這些數據當前的查詢是
SELECT
SUM(i.salePrice * i.quantity) as subtotal,
SUM(DISTINCT o.deliveryTotal) as deliveryTotal,
COUNT(DISTINCT o.orderId) as orders,
SUM(i.quantity) as quantity
FROM orderItems i
INNER JOIN orders o ON o.orderId = i.orderId
這會導致正確的分類彙總,訂單數和數量的總和。但是當我在17.50之後,送貨總額返回爲12.50。如果我SUM(o.deliveryTotal)
它將返回25.
編輯:期望的結果
| subtotal | deliveryTotal | orders | quantity |
|----------|---------------|--------|----------|
| 40.00 | 17.50 | 3 | 4 |
你能給SQL小提琴到底是什麼? – Sadikhasan
@Sadikhasan在這裏它是http://sqlfiddle.com/#!9/02cb0/1 –
更新的問題與預期的結果 – Nick