Надеюсь, что я не повторяю ранее заданные вопросы, но я даже не знаю, с чего начать.
У меня 3 таблицы. Продажи, производство и коллекции. Таблицы производственных и коллекций имеют отношение "много к одному" с таблицей "Продажи" в столбце salesID.
Я хочу создать запрос из диапазона дат в таблице продаж, который также извлекает все данные о производстве и коллекциях с соответствующим идентификатором продаж. Я использую вложенный оператор select здесь?
Спасибо за помощь. Nic
Звучит как довольно типичный оператор SQL, но вы хотите объединить столбцы с производством и коллекциями.
select s.salesID,
s.customerID,
s.productID,
s.salesDate,
MIN(p.productionDate),
SUM(p.productionQty),
SUM(c.collectionQty),
MIN(c.collectionDate),
r.productName
from sales s
inner join production p on s.salesID = p.salesID
inner join collections c on s.salesID = c.salesID
inner join products r on s.productID = r.productID
group by s.salesID, s.customerID, s.productID, s.salesDate, r.productName
select s.salesID, s.customerID, s.productID, salesDate, p.productionDate, productionQty, c.collectionQty, c.collectionDate, r.productName from sales s inner join production p on s.salesID = p.salesID inner join collections c on s.salesID = c.salesID inner join products r on s.productID = r.productID order by s.salesID
В этом сценарии у меня будет одна запись о продажах, но несколько записей о производстве и коллекции. Как бы я суммировал производство и коллекции, чтобы возвращать отдельные строки для каждой продажи?