Я понимаю, что здесь есть много сообщений MySQL, и каждый из них зависит от использования плакатов. У меня довольно сложная ситуация с объединением.Сложный оператор объединения MySQL
У меня есть 3 таблицы и я пытаюсь объединить данные по двум столбцам. Im группировка на ProductID и ProductionMonth.
Я почти там, но сейчас у меня есть точка привязки с группировкой столбца даты для моего набора данных.
В настоящее время мои данные не заполняют данные, где их нет в течение определенного месяца. И мне это нужно, по крайней мере, отображать нули и дату.
Сейчас выводится что-то вроде этого:
<pre>
Products TOTAL CANCELLED Product Name ProductType ProductionMonth
2 32 5 Advantage VSC Auto 2016-02-02
2 26 3 Advantage VSC Auto 2016-01-01
2 31 2 Advantage VSC Auto 2015-12-01
16 5 1 ASC VSC Auto 2016-02-01
16 4 4 ASC VSC Auto 2016-01-01
17 0 0 MenuVantage Menu Software NULL
21 12 0 CSO Credit 2016-02-01
21 24 0 CSO Credit 2016-01-01
</pre>
Но мне нужны данные также включают в себя дату, даже если там не дату, связанную с этой записью. Вот мой текущий код:
<pre>
SELECT P.Products, Inv.TOTAL,Inv.CANCELLED, Pur.ProductName AS 'Product Name',ProductType,ProductionMonth
FROM Dealership_Products P
LEFT JOIN (SELECT ProductsID, SUM(Total) AS TOTAL, SUM(Cancelled) AS CANCELLED,ProductionMonth
FROM Monthly_Production_Numbers
WHERE DealershipID = '25'
AND
ProductionMonth > DATE_SUB(CURDATE(), INTERVAL 1 MONTH) - INTERVAL 3 MONTH
GROUP BY ProductionMonth,ProductsID) AS Inv
ON P.Products = Inv.ProductsID
LEFT JOIN (SELECT ProductsID, ProductName AS ProductName, ProductType
FROM Products
GROUP BY ProductsID) AS Pur
ON P.Products = Pur.ProductsID
WHERE DealershipID = '25'
AND
Inactive = 'FALSE'
ORDER BY Products ASC, ProductionMonth DESC
</pre>
Таблицы используются:
Dealership_Products
column (Products) ->
Products.ProductsID
Monthly_Production_Numbers группа по (ProductionMonth) "Последние 3 месяца" группа по (ProductsID)
Продукты
Из-за того, что данные и таблицы настолько сложны, я не могу разделить всю структуру. Но основные части здесь.
Благодарим за помощь!
Как правило, проблемы с отображением данных лучше всего обрабатывать на уровне представления (например, петле PHP), если это доступно. – Strawberry
Он доступен, но я знаю, что его можно получить полную гамму с некоторыми умными линиями MySQL. Было бы более эффективным, если бы перешел на маршрут MySQL. Благодарю. –
Нет. Эффективности нет. – Strawberry