我想预测我的利润,我有订单表包含订单日期和价值, 所以我做了这个观点:
SELECT TOP (100) PERCENT CAST(YEAR(OrderDate) AS CHAR(4)) + CAST(MONTH(OrderDate) AS varchar(2)) AS [Year/Month], SUM(TotalValue) AS Total
FROM dbo.[Order]
GROUP BY YEAR(OrderDate), MONTH(OrderDate)
ORDER BY MONTH(OrderDate)
我用时间序列算法创建了一个新的挖掘结构。
问题是算法无法识别列[年/月] AS日期,因此可预测的值例如是201217 201218。
我该怎么办?错误究竟在哪里?
答案 0 :(得分:0)
那么,为什么不将列更改为自第0天起的月数?你可以这样做:
SELECT TOP (100) PERCENT YEAR(OrderDate)*12 + MONTH(OrderDate) AS [Year/Month],
SUM(TotalValue) AS Total
FROM dbo.[Order]
GROUP BY YEAR(OrderDate), MONTH(OrderDate)
ORDER BY MONTH(OrderDate);
将值转换回年份和月份:
year = floor((val - 1) / 12);
month = (val - 1) % 12 + 1;
-1
是因为1月被计为“1”而不是“0”。