在具有三个 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
我有三个表:
**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