SQL查询-使用交叉连接

问题描述

所以我需要创建一个虚拟日期系列,然后将它与我数据集中特定列中可用的不同值交叉连接,然后将此数据框加入我的主数据集 - 我知道 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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...