每个人都处于某种程度。我有库存,我需要帮助,因为我是mysql的新手。
我试图获取要存储的材料(建筑物)的总和以及从商店中移除材料的总和,这样我就可以在商店中获得剩余材料,但是在加入第三个表后我得到了重复的结果。
以下是我的表格:
表:产品
serial name <br>
13 Windows<br><br>
14 Doors<br><br>
15 Ceramic Tiles<br><br>
16 Granite<br><br>
表:order_detail
orderid productid quantity<br>
29 14 170<br><br>
30 15 2000<br><br>
32 15 200<br><br>
31 16 80<br><br>
17 1200 600<br><br>
表:matrequest
id matid matname mquantity<br>
1 15 Ceramic Tiles 300<br><br>
2 15 Ceramic Tiles 300<br><br>
这是我的代码:
$query=mysql_query("SELECT a.productid, sum(a.quantity), b.serial, b.name, sum(mquantity)
FROM order_detail a
left join products b on a.productid = b.serial
left join matrequest c on b.serial = c.matid group by b.name")or die(mysql_error());
while($row=mysql_fetch_assoc($query)){
结果:
ID Material Name Order Quantity Quantity Used Quantity at Hand<br>
15 Ceramic Tiles <b>4400 1200 3200</b> <br><br>
14 Doors 170 0 170<br><br>
16 Granite 80 0 80<br><br>
17 Iron Rods 1200 0 1200<br><br>
假设是
ID Material Name Order Quantity Quantity Used Quantity at Hand<br>
15 Ceramic Tiles <b>2200 600 1600</b> <br><br>
14 Doors 170 0 170<br><br>
16 Granite 80 0 80<br><br>
17 Iron Rods 1200 0 1200 <br><br>
提前感谢您协助
答案 0 :(得分:0)
编辑:进一步评论后的第二次尝试:
SELECT
a.productid,
sum(a.quantity),
b.serial,
b.name,
(SELECT SUM(mquantity) FROM matrequest c WHERE c.matid = b.serial)
FROM
order_detail a
LEFT JOIN
products b
ON a.productid = b.serial
GROUP BY
b.name