Sudipta的建议奏效了。现在我很难让最终的脚本在线显示。该脚本在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>';
}
答案 0 :(得分:1)
您是否可以按以下方式组合所有查询?它会工作,如果你有相同的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