我想从一个表中获取项目名称,并使用该名称通过另一张表中的名称来计算值。
SELECT itemname FROM tablename
SELECT SUM(quantity) as inward FROM inward_details WHERE item_name='$itemname'
有3张桌子,
我要做的是从带有选择查询的项目表中获取项目列表,然后从内部获取项目数量,从外部获取数量,然后从外部数量减去内部数量并回显结果。
例如,商品名称是钢笔,入库数量是20,出库数量是5, 然后我想将结果显示为笔15(20-5)
但是我希望它用于项目表中的所有项目。
答案 0 :(得分:0)
使用LEFT JOIN
,只需一个查询即可获得所需的结果:
SELECT t.itemname,
COALESCE(SUM(i.quantity), 0) AS inward,
COALESCE(SUM(o.quantity), 0) AS outward,
COALESCE(SUM(i.quantity), 0) - COALESCE(SUM(o.quantity), 0) AS movement
FROM tablename t
LEFT JOIN inward_details i ON i.item_name = t.itemname
LEFT JOIN outward_details o ON o.item_name = t.itemname
GROUP BY t.itemname
我们使用LEFT JOIN
,因此如果没有与项目关联的inward_details
行,我们仍会获得一行,而我们COALESCE
SUM
则使{ {1}}在这种情况下的结果为0。
答案 1 :(得分:0)
您可以在HTML中使用隐藏的输入,并在while
或for
循环内使用行值,这意味着输入将不会在浏览器中显示。使用后端代码(PHP),您可以轻松执行数学计算并继续进行插入。希望这会有所帮助:-)