โปรเจ็กต์ของฉันเกี่ยวกับร้านขายเครื่องประดับ และฉันพยายามค้นหาผลกำไรจากสินค้าแต่ละประเภท ให้ฉันเจาะจงมากขึ้น
ฉันมี 3 ตารางที่ให้ข้อมูลแก่ฉัน:
ยอดขาย (ยอดขาย, หมายเลขผลิตภัณฑ์, ปริมาณ, ราคา)
salesid productid Quantity Price
11001 13001 4 5
11002 13002 6 10
11003 13003 5 16
.
.
11012 13012 7 15
ผลตอบแทน(ยอดขาย,หมายเลขผลิตภัณฑ์,วันที่,ปริมาณ,ราคา)
salesid productid Quantity Price
11003 13003 1 16
11007 13007 3 12
11008 13008 3 8
การจัดซื้อจัดจ้าง(รหัสการจัดซื้อ รหัสผลิตภัณฑ์ ปริมาณ ราคา)
procurementid productid Quantity Price
100001 13001 10 2
100002 13002 10 2
.
.
100012 13012 10 2
product_category(หมวดหมู่ ID, หมวดหมู่)
categoryid category
1 Gold
2 Silver
.
5 Platin
ผลิตภัณฑ์(Productid,categoryid)
Productid categoryid
13001 1
13002 3
.
.
13010 5
กำไรจะได้รับจากประเภทนี้:
Profit=Quantity*Price(Sell)-Quantity*Price(Return)-Quantity*Price(Procurement)
และตอนนี้นี่คือปัญหา .. ฉันมาถึงจุดนี้แล้ว
SELECT categoryid,
category,
(coalesce(a.rev,0)- coalesce(b.ret,0),
coalesce(c.cost,0)) AS profit
FROM product category AS g
JOIN product AS h ON g.categoryid = h.categoryid
JOIN
(SELECT categoryid,
sum(quantity*price) AS rev
FROM sales AS a,
product AS b
WHERE a.productid = b.productid
GROUP BY categoryid) a
LEFT OUTER JOIN
(SELECT cartegoryid,
sum(quantity*price) AS ret
FROM RETURN AS a ,
product AS b
WHERE a.productid = b.productid
GROUP BY categoryid) b ON a.categoryid = b.categoryid
LEFT OUTER JOIN
(SELECT categoryid,
sum(quantity*price) AS cost
FROM procurement AS a,
product AS b
WHERE a.productid = b.productid
GROUP BY categoryid) c ON a.categoryid = c.categoryid ,
product AS d,
procurement AS e
WHERE MONTH(f.date) = MONTH(e.date)
AND YEAR(date) = 2013
[ขออภัยสำหรับการจัดแนว ฉันยังใหม่กับไซต์ไม่ทราบวิธีคัดลอกโค้ดวางได้ดี (:D)] ไม่ว่าฉันจะทำเช่นนี้ก็ตาม มันจะอยู่ในสถานะเช่น
categoryid category profit
1 Gold -100
2 Silver -100
.
5 Platin -100
ไม่รู้ว่าปัญหาอยู่ที่ไหน...ฉันทำการเปลี่ยนแปลงและสวิตช์มากมายแต่ไม่มีอะไรเกิดขึ้น...ข้อเสนอแนะใด ๆ จะเป็นประโยชน์มาก ขอบคุณใน advane