Sql server 通过删除星期六'生成指示器;星期一和星期日';s Customer\u Id IEX\u Type Call\u Date Day\u Name Required\u输出 074332 AFTW IMA 2019-08-02星期五1 074332 AFTW IMA 2019-08-03星期六0 2019-08-04星期日美国国际机场时间074332 074332 AFTW IMA 2019-08-05星期一0 074332 AFTW IMA 2019-08-06星期二0 074332 AFTW IMA 2019-08-07星期三0 074332 AFTW IMA 2019-08-08星期四0 2012年8月1日星期一国际航空管理局会议后074332 2013年8月19日星期二美国国际机场时间074332 2014年8月19日星期三美国国际机场时间074332 074332美国国际机场时间2019-08-22星期四0 074332美国国际机场时间2019-08-23星期五0 074332 AFTW IMA 2020-10-31星期六0 074332 AFTW IMA 2020-11-01星期日0 074332 AFTW IMA 2020-11-02星期一1 074332 AFTW IMA 2020-11-03星期二0 074332 AFTW IMA 2020-11-04星期三0 074332 AFTW IMA 2020-11-05星期四0 074332 AFTW IMA 2020-11-06星期五0
对于上表,我需要根据客户id和IEX类型生成指标,但这里的条件是…呼叫日期在5天之间,需要为第一条记录生成指标1,为其余记录生成指标0。。。还有一个主要条件是。。。。我们不应该在这5天里考虑星期六和星期日……Sql server 通过删除星期六'生成指示器;星期一和星期日';s Customer\u Id IEX\u Type Call\u Date Day\u Name Required\u输出 074332 AFTW IMA 2019-08-02星期五1 074332 AFTW IMA 2019-08-03星期六0 2019-08-04星期日美国国际机场时间074332 074332 AFTW IMA 2019-08-05星期一0 074332 AFTW IMA 2019-08-06星期二0 074332 AFTW IMA 2019-08-07星期三0 074332 AFTW IMA 2019-08-08星期四0 2012年8月1日星期一国际航空管理局会议后074332 2013年8月19日星期二美国国际机场时间074332 2014年8月19日星期三美国国际机场时间074332 074332美国国际机场时间2019-08-22星期四0 074332美国国际机场时间2019-08-23星期五0 074332 AFTW IMA 2020-10-31星期六0 074332 AFTW IMA 2020-11-01星期日0 074332 AFTW IMA 2020-11-02星期一1 074332 AFTW IMA 2020-11-03星期二0 074332 AFTW IMA 2020-11-04星期三0 074332 AFTW IMA 2020-11-05星期四0 074332 AFTW IMA 2020-11-06星期五0,sql-server,sql-server-2016,Sql Server,Sql Server 2016,对于上表,我需要根据客户id和IEX类型生成指标,但这里的条件是…呼叫日期在5天之间,需要为第一条记录生成指标1,为其余记录生成指标0。。。还有一个主要条件是。。。。我们不应该在这5天里考虑星期六和星期日…… 我尝试了递归CTE并生成了行号(),但我无法删除这5天中的周六和周日。。。。任何人都可以帮我写一个T-SQL脚本。检查下面的脚本是否适合您 ;WITH cte_data AS ( SELECT *, ROW_NUMBER() OVER (ORDER BY
我尝试了递归CTE并生成了行号(),但我无法删除这5天中的周六和周日。。。。任何人都可以帮我写一个T-SQL脚本。检查下面的脚本是否适合您
;WITH
cte_data AS (
SELECT *,
ROW_NUMBER() OVER (ORDER BY Call_Date ) rn
FROM table_name
WHERE DATENAME(dw,Call_Date) not in ('saturday','sunday')
)
, cte_data_excluded AS (
SELECT *
FROM table_name
WHERE DATENAME(dw,Call_Date) in ('saturday','sunday')
)
SELECT Customer_Id,
IEX_Type,
Call_Date,
Day_Name,
CASE WHEN rn%5=1
THEN 1
ELSE 0
END Required_Output
FROM cte_data
UNION ALL
SELECT Customer_Id,
IEX_Type,
Call_Date,
Day_Name,
0
FROM cte_data_excluded
ORDER BY 3
“我尝试了递归CTE并生成了行数(),但我无法删除这5天中的星期六和星期日。”您也忘记了在问题中包含该尝试。