Я пытаюсь создать набор результатов, используя три запроса. У меня три таблицы: таблица инвентаря, таблица заказа формы и таблица подробных данных формы. Мне нужно иметь возможность вводить диапазон дат и получать, сколько форм было заказано, сколько в текущем инвентаре и сколько было уничтожено, если они содержат дату уничтожения. В конечном итоге я хочу получить результирующий набор, который показывает:Создать один результат из трех разных запросов
InventoryId, FormDescription, Product, Ordered, Shipped, Destroyed, Total ending
Что было бы лучшим способом получить этот набор результатов, используя эти запросы?
Это мои три Запросы
SELECT FOD.InventoryId, SUM(FOD.FormOrderAmount) as totalOrdered, FOD.FormShippedAmount FROM tblFormOrder FMO
JOIN tblFormOrderDetails FOD ON FOD.FormOrderId = FMO.FormOrderId
WHERE FMO.OrderDateTime BETWEEN '20110101' and '20120101'
AND FMO.OrderStatus IN ('S')
GROUP BY FOD.InventoryId, FOD.FormShippedAmount -- total shipped by date and inventoryid
SELECT INV.InventoryId, SUM(INV.CurrentAmount) as currentAmount, SUM(INV.OrderAmount) as OrderAmount,
(SUM(INV.OrderAmount) - SUM(INV.CurrentAmount)) as InventoryUsed
FROM tblInventory INV
where INV.CreatedOn
BETWEEN '20110101' and '20120101'
GROUP BY INV.InventoryId -- current amount based off ordered and used
select INV.InventoryId, count(*) as total
, FMO.OrderDateTime as OrderDate, Inv.FormNo, INV.FormDescription, INV.Product
from [tblinventory] INV
join tblformorderdetails FOD ON FOD.InventoryId = inv.InventoryId
join tblformorder FMO on FMO.FormOrderId = FOD.FormOrderId
where INV.DestructionDate
BETWEEN '20110101' and '20120101'
group by
FMO.OrderDateTime,
Inv.FormNo, INV.FormDescription, INV.Product, INV.InventoryId -- using count to find how many destroyed if they have a destruction date
Присоединиться к запросам. – Barmar
@ Бармар, это то, что я не уверен, как это сделать. –
'SELECT * FROM (query1) AS q1 JOIN (query2) AS q2 ON q1.InventoryID = q2.InventoryID JOIN (query3) AS q3 ВКЛ q1.InventoryID = q3.InventoryID' – Barmar