0

我想预测我的利润,我有订单表包含订单日期和价值,所以我做了这个视图:

   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)

我用时间序列算法创建了一个新的挖掘结构。

问题是算法无法识别 [Year/Month] AS Date 列,因此例如,可预测值为 201217 201218。

我应该怎么办?错误究竟在哪里?

4

1 回答 1

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;

-1s 是因为一月被计为“1”而不是“0” 。

于 2013-06-23T21:05:46.363 回答