1
早上好,查詢計算期初庫存,庫存,缺貨,庫存餘額在MYSQL的統一價格與調控通脹率(上升,上升,上升)
我有一個包含三個表MySQL數據庫:
- 產品表
- stockin表
- 缺貨表
和我有以下查詢效果很好,它可以幫助我來生成legder report on picture 4 below:
SELECT
Product.Product_Code,
Product.Product_Color,
Product.Product_Model,
IFNull(QtyBeginningStockIn.Qty_In, 0)-IFNull(QtyBeginningStockOut.Qty_Out, 0) QtyBeginningStock,
IFNull(UntyBeginningStockIn.Uprice_In, 0) UntyBeginningStock,
IFNull(BeginningStockIn.Amount, 0)-IFNull(BeginningStockOut.Amount, 0) BeginningStock,
IFNull(QtyPeriodStockIn.Qty_In, 0) QtyStockIn,
IFNull(UntyPeriodStockIn.Uprice_In, 0) UntyStockIn,
IFNull(PeriodStockIn.Amount, 0) StockIn,
IFNull(QtyPeriodStockOut.Qty_Out, 0) QtyStockOut,
IFNull(UntyPeriodStockOut.Uprice_Out, 0) UntyStockOut,
IFNull(PeriodStockOut.Amount, 0) StockOut,
IFNull(QtyBeginningStockIn.Qty_In, 0)-IFNull(QtyBeginningStockOut.Qty_Out, 0)+IFNull(QtyPeriodStockIn.Qty_In, 0)-IFNull(QtyPeriodStockOut.Qty_Out, 0) QtyStockBalance,
IFNull(UntyclosingStockIn.Uprice_In, 0) UntyclosingStockIn,
IFNull(BeginningStockIn.Amount, 0)-IFNull(BeginningStockOut.Amount, 0)+IFNull(PeriodStockIn.Amount, 0)-IFNull(PeriodStockOut.Amount, 0) StockBalance
FROM Product
LEFT JOIN
(
SELECT
SUM(Qty_In) Qty_In,
Product_Code
FROM StockIn
WHERE StockIn_Date < '2012/01/02'
group by Product_Code
) QtyBeginningStockIn ON QtyBeginningStockIn.Product_Code = Product.Product_Code
LEFT JOIN
(
SELECT
SUM(Qty_Out) Qty_Out,
Product_Code
FROM Stockout
WHERE StockOut_Date < '2012/01/02'
group by Product_Code
) QtyBeginningStockOut ON QtyBeginningStockOut.Product_Code = Product.Product_Code
LEFT JOIN
(
SELECT
Uprice_In,
Product_Code
FROM StockIn
WHERE StockIn_Date < '2012/01/02'
group by Product_Code
) UntyBeginningStockIn ON UntyBeginningStockIn.Product_Code = Product.Product_Code
LEFT JOIN
(
SELECT
SUM(Amount) Amount,
Product_Code
FROM StockIn
WHERE StockIn_Date < '2012/01/02'
group by Product_Code
) BeginningStockIn ON BeginningStockIn.Product_Code = Product.Product_Code
LEFT JOIN
(
SELECT
SUM(Amount) Amount,
Product_Code
FROM StockOut
WHERE StockOut_Date < '2012/01/02'
group by Product_Code
) BeginningStockOut ON BeginningStockOut.Product_Code = Product.Product_Code
LEFT JOIN
(
SELECT
SUM(Qty_In) Qty_In,
Product_Code
FROM StockIn
WHERE StockIn_Date >= '2012/01/02' AND StockIn_Date < '2012/01/31'
group by Product_Code
) QtyPeriodStockIn ON QtyPeriodStockIn .Product_Code = Product.Product_Code
LEFT JOIN
(
SELECT
Uprice_In,
Product_Code
FROM StockIn
WHERE StockIn_Date >= '2012/01/02' AND StockIn_Date < '2012/01/31'
group by Product_Code
) UntyPeriodStockIn ON UntyPeriodStockIn .Product_Code = Product.Product_Code
LEFT JOIN
(
SELECT
SUM(Amount) Amount,
Product_Code
FROM StockIn
WHERE StockIn_Date >= '2012/01/02' AND StockIn_Date < '2012/01/31'
group by Product_Code
) PeriodStockIn ON PeriodStockIn .Product_Code = Product.Product_Code
LEFT JOIN
(
SELECT
SUM(Qty_Out) Qty_Out,
Product_Code
FROM Stockout
WHERE StockOut_Date >= '2012/01/02' AND StockOut_Date < '2012/01/31'
group by Product_Code
) QtyPeriodStockOut ON QtyPeriodStockOut .Product_Code = Product.Product_Code
LEFT JOIN
(
SELECT
Uprice_Out,
Product_Code
FROM Stockout
WHERE StockOut_Date >= '2012/01/02' AND StockOut_Date < '2012/01/31'
group by Product_Code
) UntyPeriodStockOut ON UntyPeriodStockOut .Product_Code = Product.Product_Code
LEFT JOIN
(
SELECT
SUM(Amount) Amount,
Product_Code
FROM StockOut
WHERE StockOut_Date >= '2012/01/02' AND StockOut_Date < '2012/01/31'
group by Product_Code
) PeriodStockOut ON PeriodStockOut.Product_Code = Product.Product_Code
LEFT JOIN
(
SELECT
Uprice_In,
Product_Code
FROM StockIn
WHERE StockIn_Date < '2012/01/02'
group by Product_Code
) UntyclosingStockIn ON UntyclosingStockIn.Product_Code = Product.Product_Code
一切皆有可能 –
您需要提供準確的預期結果以及您試圖實現的結果。 – Shadow