问题描述
所以我需要创建一个虚拟日期系列,然后将它与我数据集中特定列中可用的不同值交叉连接,然后将此数据框加入我的主数据集 - 我知道 python 解决方案,但需要将其输入SQL
查询以定义日期系列并从中获取日期来源
DECLARE @StartDate date = '20100101';
DECLARE @CutoffDate date = DATEADD(DAY,-1,DATEADD(YEAR,15,@StartDate));
;WITH seq(n) AS
(
SELECT 0 UNION ALL SELECT n + 1 FROM seq
WHERE n < DATEDIFF(DAY,@StartDate,@CutoffDate)
),d(d) AS
(
SELECT DATEADD(DAY,n,@StartDate) FROM seq
),src AS
(
SELECT
DateOrigin = CONVERT(date,d),TheDay = DATEPART(DAY,TheDayName = DATENAME(WEEKDAY,TheWeek = DATEPART(WEEK,TheISOWeek = DATEPART(ISO_WEEK,TheDayOfWeek = DATEPART(WEEKDAY,TheMonth = DATEPART(MONTH,TheMonthName = DATENAME(MONTH,TheQuarter = DATEPART(Quarter,TheYear = DATEPART(YEAR,TheFirstOfMonth = DATEFROMPARTS(YEAR(d),MONTH(d),1),TheLastOfYear = DATEFROMPARTS(YEAR(d),12,31),TheDayOfYear = DATEPART(DAYOFYEAR,d)
FROM d
)
SELECT [DateOrigin] FROM src
ORDER BY DateOrigin
OPTION (MAXRECURSION 0)
现在选择我需要在我的数据集中交叉连接的列
(SELECT Distinct data.install From data) AS sample
然后我需要将它加入到我在 data.install 上的主数据集上,以便也为每个 .install 点捕获缺失的日期
在此之后,我需要在 .install 点(名称和点)上放置一个移动平均线,它可以捕获每个安装的移动平均线,而无需回顾前一点。我对 sql 语法一窍不通
不幸的是,我无法将第一个日期表写入我使用的 db- 查询
SELECT DateOrigin.src,sample.install FROM DateOrigin.src,Sample
Error is an Invalid statement
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)