我有這個查詢,我有一個收購表(傳入)和發票表(傳出)我試圖通過採取AVG dbo計算手頭的價值。 tblAcqDetail.AcqPrice * QtyOnHand這是計算採取傳入 - 傳出。當我在Acquisitions表中添加具有相同商品的不同費用的訂單項時,AVG不會分組,而是顯示下面的兩個訂單項。發貨方可以與多個訂單項正常工作...試圖計算手上的數量和手上的多個貨物的價值
Product QtyIn QtyOut On_Hand AVGPrice Value_OnHand
Screws 100 30 70 25.0000 1750.0000
Nuts 50 10 40 40.0000 1600.0000
Nuts 100 10 90 50.0000 4500.0000
Bolts 100 20 80 100.000 8000.0000
。
SELECT DISTINCT
dbo.tblProduct.Product ,
SUM(DISTINCT dbo.tblAcqDetail.AcqQuantity) AS QtyIN ,
SUM(DISTINCT dbo.tblInvoiceDetail.InvQuantity) AS QtyOut ,
SUM(DISTINCT dbo.tblAcqDetail.AcqQuantity)
- SUM(DISTINCT dbo.tblInvoiceDetail.InvQuantity) AS On_Hand ,
dbo.tblAcqDetail.AcqPrice ,
dbo.tblAcqDetail.AcqPrice
* (SUM(DISTINCT dbo.tblAcqDetail.AcqQuantity)
- SUM(DISTINCT dbo.tblInvoiceDetail.InvQuantity)) AS Value_Hand
FROM dbo.tblAcq
INNER JOIN dbo.tblAcqDetail ON dbo.tblAcq.acqID = dbo.tblAcqDetail.AcqID
INNER JOIN dbo.tblProduct ON dbo.tblAcqDetail.ProductID = dbo.tblProduct.ProductID
INNER JOIN dbo.tblInvoiceDetail ON dbo.tblProduct.ProductID = dbo.tblInvoiceDetail.ProductID
INNER JOIN dbo.tblInvoice ON dbo.tblInvoiceDetail.InvoiceID = dbo.tblInvoice.InvoiceID
GROUP BY dbo.tblProduct.Product ,
dbo.tblAcqDetail.AcqPrice
我嘗試沒有獨特的,它爲同一產品返回多行。 – Johanna 2013-04-04 16:51:35
我找不出原因。行不重複,它不會正確分組或合併它們。看到上面表格的輸出。如果我作爲子查詢打包在DISTINCT中仍然不起作用。 – Johanna 2013-04-04 17:00:34
@ user2245667:嘗試從JOIN中刪除'tblAcq'表 - 它不在任何地方使用。如果您可以單獨發佈每個表的一些示例數據,它也會有所幫助... – PinnyM 2013-04-04 17:11:49