Думаете ли вы о чем-то в этих строках?
SELECT t.pid,
Nz([pi].[qty], 0) + Nz([o].[qty], 0) - Nz([s].[qty], 0) AS dat
FROM (((SELECT DISTINCT pid
FROM inventory_line) AS t
LEFT JOIN (SELECT *
FROM inventory_line
WHERE iid = 2) AS pi
ON t.pid = pi.pid)
LEFT JOIN (SELECT *
FROM inventory_line
WHERE iid = 3) AS s
ON t.pid = s.pid)
LEFT JOIN (SELECT *
FROM order_line
WHERE oid = 217
OR oid = 218) AS o
ON t.pid = o.pid
WHERE (( ( t.pid ) = [Enter:] ))
Вышесказанное требует некоторой работы, но то, что должно быть сделано, было бы яснее с большим количеством ввода на желаемом выходе.
Комментарии
SELECT t.pid,
t.name,
pi.qty,
o.q,
s.qty,
Nz([pi].[qty]) + Nz([o].[q]) - Nz([s].[Qty]) AS sold
FROM (((SELECT DISTINCT pid,
[Name]
FROM inventory_line) AS t
LEFT JOIN (SELECT pid,
qty
FROM inventory_line
WHERE iid = 1) AS pi
ON t.pid = pi.pid)
LEFT JOIN (SELECT pid,
qty
FROM inventory_line
WHERE iid = 2) AS s
ON t.pid = s.pid)
LEFT JOIN (SELECT pid,
SUM(qty) AS q
FROM order_line
WHERE oid = 217
OR oid = 218
GROUP BY pid) AS o
ON t.pid = o.pid
WHERE (( ( t.pid ) = [Enter:] ))