我正在嘗試計算sql中的庫存。我有4款產品,尺寸,購買和銷售。產品表通過在基礎顏色上添加列來計算庫存可用
+----+------------------+
| id | product_name |
+----+------------------+
| 1 | apple |
|----|------------------|
| 2 |banana |
|----|------------------|
| 3 |mango |
+----+------------------+
現在顏色表
+----+------------------+
| id | color_name |
+----+------------------+
| 1 | dark |
|----|------------------|
| 2 | light |
+----|------------------+
購表人是
+-------+-------------+
| id | quantity |color
+-------+-------------+
| 1 | 15 |dark
+-------+-------------+
| 1 | 10 |light
+-------+-------------+
| 2 | 5 |dark
+-------+-------------+
| 3 | 25 |light
+-------+-------------+
,銷售表
+-------+-------------+
| id | quantity |color
+-------+-------------+
| 1 | 5 |dark
+-------+-------------+
| 1 | 5 |light
+-------+-------------+
| 2 | 5 |dark
+-------+-------------+
| 3 | 5 |light
+-------+-------------+
採購和銷售表有外鍵ID引用產品表的ID。現在,我嘗試計算顏色的基礎上,購買和銷售以下形式的股票可即相差太大
+----+------------------+-------------+
| id | product_name | quantity |color
+----+------------------+-------------+
| 1 | apple | 10 |dark
|----|------------------|-------------|
| 1 | apple | 5 |light
|----|------------------|-------------|
| 2 |banana | 0 |dark
|----|------------------|-------------|
| 3 |mango | 20 |light
+----+------------------+-------------+
我有以下腳本,我曾嘗試:
SELECT p.id,
p.Name,
Purchase.purchaseQty - sales.salseQty AS totalQty
FROM Product p
OUTER APPLY (
SELECT purchase.id,
SUM(purchase.quantity) purchaseQty
FROM purchase
WHERE purchase.id = p.id
GROUP BY
purchase.id
) Purchase
OUTER APPLY (
SELECT sales.id,
SUM(sales.quantity) salseQty
FROM sales
WHERE sales.id = p.id
GROUP BY
sales.id
) sales
;
顏色是購買和銷售表中的一列嗎?或者你剛剛提到?如果它是一列,那麼你需要與顏色表的外鍵關係。 –
你試過什麼? –
@YogeshSharma有人能幫我解決這個解決方案SELECT p.id,p.Name,Purchase.purchaseQty-sales.salseQty作爲totalQty FROM產品p OUTER APPLY( SELECT purchase.id,SUM(purchase.quantity)purchaseQty FROM購買 其中purchase.id = p.id GROUP BY purchase.id )購買 OUTER APPLY( SELECT sales.id,SUM(sales.quantity)salseQty 銷售 其中sales.id = p.id GROUP BY sales.id )銷售 –