zoukankan      html  css  js  c++  java
  • 周数据转换为天数据的一个Sql数据查询

    以前碰到的一个表,存储时间按照周为单位存储,而却需要按照天为单位使用。为了减少程序复杂度,便增加了多层查询,提高Sql查询结果可用性。

    select 
        (week_no-week_start)*7+week_day-week_day_start pp,
        dateadd(day,(week_no-week_start)*7+week_day-week_day_start,Month) the_day,
         *
    from   
        (
        select
            case DatePart(w,Month) when 7 then 1 else DatePart(w,Month)+1 end as week_day_start,
            1 week_start,
            * 
        from
            (
            SELECT
                [CompanyID]
                ,[EmployeeNO]
                ,[Year]
                ,[Month]
                ,[WEEK_NO]
                ,[Order_NO]
                ,[Sell_NO]
                ,[WorkCode]
                ,1 as WEEK_DAY
                ,[WorkHours_MON]
                ,[H_MON] as H
                ,[M_MON] as M
                ,[GroupCode]
             FROM
                [CardTable]
            union
            SELECT
                [CompanyID]
                ,[EmployeeNO]
                ,[Year]
                ,[Month]
                ,[WEEK_NO]
                ,[Order_NO]
                ,[Sell_NO]
                ,[WorkCode]
                ,2 as WEEK_DAY
                ,[WorkHours_TUE] as WorkHours
                ,[H_TUE] as H
                ,[M_TUE] as M
                ,[GroupCode]
              FROM
                [CardTable]
            union
            SELECT
                [CompanyID]
                ,[EmployeeNO]
                ,[Year]
                ,[Month]
                ,[WEEK_NO]
                ,[Order_NO]
                ,[Sell_NO]
                ,[WorkCode]
                ,3 as WEEK_DAY
                ,[WorkHours_WED] as WorkHours
                ,[H_WED] as H
                ,[M_WED] as M
                ,[GroupCode]
              FROM
                [CardTable]
            union
            SELECT
                [CompanyID]
                ,[EmployeeNO]
                ,[Year]
                ,[Month]
                ,[WEEK_NO]
                ,[Order_NO]
                ,[Sell_NO]
                ,[WorkCode]
                ,4 as WEEK_DAY
                ,[WorkHours_THU] as WorkHours
                ,[H_THU] as H
                ,[M_THU] as M
                ,[GroupCode]
            FROM
                [CardTable]
            union
            SELECT
                [CompanyID]
                ,[EmployeeNO]
                ,[Year]
                ,[Month]
                ,[WEEK_NO]
                ,[Order_NO]
                ,[Sell_NO]
                ,[WorkCode]
                ,5 as WEEK_DAY
                ,[WorkHours_FRI] as WorkHours
                ,[H_FRI] as H
                ,[M_FRI] as M
                ,[GroupCode]
            FROM
                [CardTable]
            union
            SELECT
                [CompanyID]
                ,[EmployeeNO]
                ,[Year]
                ,[Month]
                ,[WEEK_NO]
                ,[Order_NO]
                ,[Sell_NO]
                ,[WorkCode]
                ,6 as WEEK_DAY
                ,[WorkHours_SAT] as WorkHours
                ,[H_SAT] as H
                ,[M_SAT] as M
                ,[GroupCode]
              FROM
                [CardTable]
            union
            SELECT
                [CompanyID]
                ,[EmployeeNO]
                ,[Year]
                ,[Month]
                ,[WEEK_NO]
                ,[Order_NO]
                ,[Sell_NO]
                ,[WorkCode]
                ,7 as WEEK_DAY
                ,[WorkHours_SUN] as WorkHours
                ,[H_SUN] as H
                ,[M_SUN] as M
                ,[GroupCode]
            FROM
                [CardTable]
            ) temp1
    --    where
    --    week_no=6
        )temp2
    --where not( week_no=week_start and week_day<week_day_start)
    order by pp

  • 相关阅读:
    D3D中的Alpha颜色混合(1)
    最小的MFC程序
    命名空间规则【内部】
    能登陆QQ,打不开网页
    .net重要的开源组件[更新中]
    validateRequest="false"属性及xss攻击
    RSS介绍
    Virtual、Override和New关键字的使用
    SQL语句精妙集合
    绝好的软件集合
  • 原文地址:https://www.cnblogs.com/dongzhiquan/p/1994517.html
Copyright © 2011-2022 走看看