我正在尝试(综合)填充星型数据集市中的空时间维度表,之后它应该如下所示:
我正在使用以下T-SQL代码:
/*
STEP 3
Populate DIM_TIJD table with date and its derrived values data
*/
USE Fuzzy_DM_Robin
--DECLARE DATE VARIABLES FOR DATE PERIOD
DECLARE @StartDate datetime = '01/01/1995'
DECLARE @EndDate datetime = '01/01/2026'
DECLARE @DateInProcess datetime
SET @DateInProcess = @StartDate
WHILE @DateInProcess < = @EndDate
BEGIN
SET NOCOUNT ON
--LOOP THROUGH INDIVIDUAL DATES DEFINED BY TIME PERIOD
INSERT INTO DIM_TIJD (
[DATUM_ID],
[DATUM],
[DAG_VD_WEEK],
[WEEKNR],
[MAAND],
[MAAND_OMSCHRIJVING],
[LAATSTE_DAG_MAAND],
[KWARTAAL],
[JAAR]
)
VALUES (
CAST ( @DateInProcess AS numeric (10) ),
@DateInProcess,
CONVERT(varchar(10), @DateInProcess, 110) + ', ' + DATENAME(WEEKDAY, @DateInProcess ),
DATEPART (wk, @DateInProcess),
MONTH( @DateInProcess),
CAST(YEAR(@DateInProcess) as varchar(4)) + ' - ' + DATENAME(MONTH, @DateInProcess ),
DATEPART (dd, EOMONTH ( @DateInProcess)),
DATENAME( QUARTER, @DateInProcess ),
YEAR(@DateInProcess))
END
然而,它不会加载。我收到的消息是:
消息1:
字符串或二进制数据将被截断
和消息2:
[执行SQL任务]错误:执行查询&#34; / * 第3步 用日期填充DIM_TIJD表并且它...&#34;失败并出现以下错误:&#34;语句已终止。&#34;。可能的失败原因:查询问题,&#34; ResultSet&#34;属性设置不正确,参数设置不正确或连接未正确建立。&#34;
我做错了什么? SSMS中没有底层表明代码有问题,我已经检查了表和代码的所有varchar长度是相同的。我试图摆弄结果集设置,但这只给了我另一条消息:
消息3:
[执行SQL任务]错误:为ResultSetType返回的结果绑定数量无效:&#34; ResultSetType_SingleRow&#34;。
提前谢谢!
答案 0 :(得分:0)
@DateInProcess变量需要作为循环的一部分递增。
尝试将其添加为循环的最后一行(在END之前):
SET @DateInProcess = DATEADD(DAY, 1, @DateInProcess)