在具有三个 table 的查询中使用 Join 、 Sum 和 Group by

Use Join , Sum and Group by in a query with three table

我有三个表:

                                    **OBTable**
               Product           obquantity       obrate        obTotalAmmount
               Matadoor Pen      100              8             800
               Matadoor Pen      1000             4             4000

                                 **PurchaseTable**
               pProduct        Pquantity    pRate   SaleRate     pTotalAmmount
               Matadoor Pen    150          4       5            600
               Matadoor Pen    400          8       10           3200
               Matadoor Pen    1500         9       10           13500

                                   **SaleTable**
               sProduct             sQuantity    sRate        sTotalAmmount
               Matadoor Pen         100          10           1000
               Matadoor Pen         350          10           3500
               Matadoor Pen         1350         10           13500

我的查询:

SELECT 产品, SUM(obQuantity) 作为 obQuantity, SUM(obTotalAmmount)/SUM(obQuantity) AS obRate, SUM(obTotalAmmount)作为 obTotalAmmount,

p产品, SUM(pQuantity) 作为 pQuantity, SUM(pTotalAmmount)/SUM(pQuantity) AS pRate, SUM(pTotalAmmount) AS pTotalAmmount,

s产品, SUM(sQuantity) AS sQuantity, SUM(sTotalAmmount)/SUM(sQuantity) 作为 sRate, SUM(sTotalAmmount) 作为 sTotalAmmount,

Sum(obQuantity) +SUM(pquantity) -Sum(squantity) as obpsQTY,

(Sum(obTotalAmmount)+Sum(pTotalAmmount)-sum(sTotalAmmount))/(Sum(obQuantity)+SUM(pQuantity)-Sum(sQuantity)) as obpsrate,

(Sum(obTotalAmmount)+Sum(pTotalAmmount))-Sum(sTotalAmmount) 作为 obpstotal

来自 OBTable

左连接 OBTable.Product=PurchaseTable.pProduct 上的 PurchaseTable 左连接 PurchaseTable.pProduct=SaleTable.sProduct

可售

分组 OBTable.Product,PurchaseTable.pProduct,Saletable.sProduct

执行的答案不正确。请帮助我并提供解决问题的提示。

您可以试试这个代码:

Select Product,
Sum(obQuantity) As obQuantity,
(SUM(obTotalAmmount)/Sum(obQuantity)) As obRate,
SUM(obTotalAmmount) as obTotalAmmount,
pQuantity,pRate,pTotalAmmount,
sQuantity ,sRate,sTotalAmmount,
(Sum(obQuantity) +pquantity) -squantity as obpsQTY,
(((SUM(obTotalAmmount)/Sum(obQuantity)))+pRate)/2 as  obpsrate ,
((((SUM(obTotalAmmount)/Sum(obQuantity)))+pRate)/2)*((Sum(obQuantity) +pquantity) -squantity) as obpstotal 
from OBTable 
left join (
Select pProduct,Sum(pQuantity) As pQuantity ,(Sum(pTotalAmmount)/Sum(pQuantity)) As pRate,Sum(pTotalAmmount) As pTotalAmmount 
from PurchaseTable 
Group by PurchaseTable.pProduct
)
PurchaseTable on OBTable.Product=PurchaseTable.pProduct
left join
(
Select sProduct,Sum(sQuantity) As sQuantity ,(Sum(sTotalAmmount)/Sum(sQuantity)) As sRate,Sum(sTotalAmmount) As sTotalAmmount 
from SaleTable 
Group by SaleTable.sProduct 
) Saletable on PurchaseTable.pProduct=SaleTable.sProduct 
Group by OBTable.Product,PurchaseTable.pProduct,Saletable.sProduct,PurchaseTable.pQuantity,PurchaseTable.pRate,PurchaseTable.pTotalAmmount,Saletable.sQuantity,Saletable.sRate,Saletable.sTotalAmmount