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 通过删除星期六'生成指示器;星期一和星期日';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

对于上表,我需要根据客户id和IEX类型生成指标,但这里的条件是…呼叫日期在5天之间,需要为第一条记录生成指标1,为其余记录生成指标0。。。还有一个主要条件是。。。。我们不应该在这5天里考虑星期六和星期日……
我尝试了递归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天中的星期六和星期日。”您也忘记了在问题中包含该尝试。