我知道这里有很多MySQL帖子,每个帖子都特定于海报使用。我有一个相当复杂的加入情况。
我有3个表,我正在尝试聚合两列数据。我在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 group by(ProductionMonth)&#34;过去3个月&#34; group by(ProductsID)
产品
由于数据和表格如此复杂,我无法共享所有结构。但主要部分在这里。
感谢您的帮助!
答案 0 :(得分:0)
如何使用IFNULL?
IFNULL(ProductionMonth,'date-you-want') as ProductionMonth