php - 从三个值数组计算当前库存

标签 php mysql arrays

苏迪普塔的建议奏效了。现在我很难让最终的脚本在线显示。该脚本在 phpMyAdmin SQL 编辑器中正确显示。

$sql = "CREATE  TABLE Inv_Physical_Count
        SELECT  SUM(qty) as qty, excel_part_num, part_id, part_desc, order_form_seq
        FROM    Inventory, Inventory_Items, Parts
        WHERE   Inventory.id = Inventory_Items.inventory_id
        AND     Inventory_Items.part_id = Parts.id
        AND     Inventory.date = '2017-01-05'
        AND     Inventory.inv_type_id = '2'
        GROUP BY part_id
        ORDER BY part_id";

        $q = $pdo->prepare($sql);
        $q->execute(array());

$sql = "CREATE  TABLE Inv_Restock
        SELECT  SUM(qty) as qty, excel_part_num, part_id, part_desc, order_form_seq
        FROM    Inventory, Inventory_Items, Parts
        WHERE   Inventory.id = Inventory_Items.inventory_id
        AND     Inventory_Items.part_id = Parts.id
        AND     Inventory.date >=  '2017-01-05'
        AND     Inventory.date <  '2017-07-04'
        AND     Inventory.inv_type_id = '1'
        GROUP BY part_id
        ORDER BY part_id";

        $q = $pdo->prepare($sql);
        $q->execute(array());

$sql = "CREATE  TABLE Inv_Orders
        SELECT  SUM(qty) as qty, excel_part_num, part_id, part_desc, order_form_seq
        FROM    Orders, Order_Items, Parts
        WHERE   Orders.id = Order_Items.orders_id
        AND     Order_Items.part_id = Parts.id
        AND     Orders.date_order >= '2017-01-05'
        AND     Orders.date_order < '2017-07-04'
        GROUP BY part_id
        ORDER BY part_id";

        $q = $pdo->prepare($sql);
        $q->execute(array());

以下 SQL 脚本可在 phpMyAdmin 的 SQL 编辑器中运行。但是,在 PHP 中我无法让这个脚本显示真实内容。一切都是空白。

$sql = "SELECT  a.qty + b.qty - c.qty as 'QTY', a.excel_part_num as 'Part Num', a.part_desc as 'Description'
        FROM    Inv_Physical_Count a,
                Inv_Restock b,
                Inv_Orders c
        WHERE   a.part_id = b.part_id
        AND     a.part_id = c.part_id
        ORDER BY a.order_form_seq";

        $q = $pdo->prepare($sql);
        $q->execute(array());

        while ($row = $q->fetch(PDO::FETCH_ASSOC)) 
        {
            echo    '<tr>';
            echo    '<td>' . $row['qty'] . '</td>';
            echo    '<td>' . $row['excel_part_num'] . '</td>';
            echo    '<td>' . $row['part_desc'] . '</td>';               
        }

最佳答案

您不能按照下面的方式合并所有查询吗?如果您有相同的part_id,它会起作用,如果它不相同,也许您可​​以使用 part_num 而不是 part_id

连接表
SELECT SUM(a.qty + b.qty - c.qty), part_num
FROM Phys_Count a
LEFT JOIN Items_Received b
ON  a.part_id = b.part_id
JOIN items_shipped c
ON  a.part_id = c.part_id
WHERE ...
GROUP BY part_num
ORDER BY part_id

关于php - 从三个值数组计算当前库存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44802950/

相关文章:

php - 如何将联系人表单 7 数据插入 wordpress 中的 mysql 数据库

php - 用 PDO 执行大的 Sql 文件?

c - 二维数组自动增长

Python数组数据转整数

javascript - 如何更改通过 XMLHttpRequest 添加的第一个 LI 值的颜色?

javascript - 通过 Ajax 正确重新加载 div - 脚本消失

php - 'this' 中的未知列 'where clause'

mysql - OperationalError 在 'reading initial communication packet' DigitalOcean 失去与 MySQL 服务器的连接

java - 你能制作组合框方法吗

python - 比较两个不同大小的一维数组中的元素,具有公差