Php MYSQL-剩余数量-带序列的产品-多表

Php MYSQL-剩余数量-带序列的产品-多表,php,mysql,sql,Php,Mysql,Sql,我如何制作一个mysql,它将显示所有具有不同序列号和可用数量的特定产品。 请注意,我的客户没有存储数量的表, 我们所拥有的是: 收到的\采购\订单\详细信息 收到的\转账\订单\详细信息 调拨订单详情 正式收据详情 ... 还有更多的桌子。。。 这些是我们过去知道还有多少数量的表格。 可用数量=已收货\采购\订单\明细+已收货\调拨\订单\明细-调拨\订单\明细+正式\入库\明细 我已经有一个由FuzzyTree给出的查询,但它显示了一个按产品数量分组的查询 我现在需要的是查询具有不同序列号的

我如何制作一个mysql,它将显示所有具有不同序列号和可用数量的特定产品。 请注意,我的客户没有存储数量的表, 我们所拥有的是:

收到的\采购\订单\详细信息 收到的\转账\订单\详细信息 调拨订单详情 正式收据详情 ... 还有更多的桌子。。。 这些是我们过去知道还有多少数量的表格。 可用数量=已收货\采购\订单\明细+已收货\调拨\订单\明细-调拨\订单\明细+正式\入库\明细

我已经有一个由FuzzyTree给出的查询,但它显示了一个按产品数量分组的查询

我现在需要的是查询具有不同序列号的产品id,并显示每个可用数量

而不是

我需要

---- 我的测试sql now问题: 我将一个派生表与union组合,并将s_product_序列分组,以便它们分开。但是我的查询显示了序列号为0的所有产品,就像他们在跟踪销售序列号为的第一个产品的第一个数据一样。只有b1序列号的第一个搅拌机销售,但另一个搅拌机应该仍然可用

注 我添加了一个union查询,因为products表没有serial\u no列…,序列表分散在不同的表上。所以我首先做的是合并表来收集完整的序列号。或者也许我走错了路

问题

我想我明白了,伙计们

而不是 如tablen ON tablen.i_p_id=tabletestn.i_p_id

它应该是指序列号 如表N.s_产品系列=表TestN.s_产品系列上的表N


现在工作正常,但基于我的sql有多长,我想知道这是否有效?

这个问题似乎离题了,因为Stackoverflow不是一个代码创建社区。描述你尝试过什么以及你要去哪里wrong@DarylGill,很抱歉,我忘记粘贴我的测试sql。它也很长。请检查编辑后的帖子。那一定是某种记录,见鬼。这需要从mobilePlease中调试。请编辑问题并显示将生成指定结果的示例数据。
Product_ID      Product_Name    Quantity_Available
6               Apple           100
7               Blender         2
8               Toaster         3
Product_ID  Product_Name    Serial_No   Quantity_Available
6           Apple           NULL        100
7           Blender         b1          0
7           Blender         b2          1
7           Blender         b3          1
8           Toaster         t1          1
8           Toaster         t2          1
8           Toaster         t3          1
Product_ID  Product_Name    Serial_No   Quantity_Available
6           Apple           NULL        100
7           Blender         b1          0
7           Blender         b2          0
7           Blender         b3          0
8           Toaster         t1          0
8           Toaster         t2          0
8           Toaster         t3          0
SELECT tabletest1.i_p_id, tabletest1.s_product_serial, ( COALESCE(tabletest1.Product_Total,0) + COALESCE(table1.Product_Total,0) + COALESCE(table2.Product_Total,0) + COALESCE(table3.Product_Total,0) ) AS 'Total QTY Added', ( COALESCE(tabletest1.Product_Total,0) + COALESCE(table4.Product_Total,0) + COALESCE(table5.Product_Total,0) + COALESCE(table6.Product_Total,0) ) AS 'Total QTY Released', ( COALESCE(tabletest1.Product_Total,0) + COALESCE(table1.Product_Total,0) + COALESCE(table2.Product_Total,0) + COALESCE(table3.Product_Total,0) ) - ( COALESCE(tabletest1.Product_Total,0) + COALESCE(table4.Product_Total,0) + COALESCE(table5.Product_Total,0) + COALESCE(table6.Product_Total,0) ) AS 'Current Quantity Available' FROM ( ..union query.. ) AS tabletest1 LEFT JOIN ( derivedtable1.. ) AS table1 ON table1.i_p_id = tabletest1.i_p_id LEFT JOIN ( derivedtable2.. ) AS table2 ON table2.i_p_id = tabletest1.i_p_id LEFT JOIN ( derivedtable3.. ) AS table3 ON table3.i_p_id = tabletest1.i_p_id LEFT JOIN ( derivedtable4.. ) AS table4 ON table4.i_p_id = tabletest1.i_p_id LEFT JOIN ( derivedtable5.. ) AS table5 ON table5.i_p_id = tabletest1.i_p_id LEFT JOIN ( derivedtable6.. ) AS table6 ON table6.i_p_id = tabletest1.i_p_id GROUP BY i_p_id, s_product_serial