T-sql 查询

Posted 游林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了T-sql 查询相关的知识,希望对你有一定的参考价值。

------------------case---when-------的使用---------------------

select  userAccount , eatingDate ,
    case when sum(a)=1 then‘早餐‘ else ‘‘ end   as ‘breakfast‘ ,
    case when sum(b)=1 then ‘午餐‘ else ‘‘ end  as ‘lunch‘,
    case when sum(c)=1 then ‘晚餐‘ else ‘‘ end  as ‘dinner‘
    from (
        select  userAccount , eatingDate ,
           case when menuType=‘早餐‘ then 1 else 0 end  AS a ,
           case when menuType=‘午餐‘ then 1 else 0 end  AS b ,
           case when menuType=‘晚餐‘ then 1 else 0 end  AS c
        from view_menuReservation
           where userAccount = ‘7923‘
           and eatingDate between ‘2016-12-01‘ and‘2016-12-31‘
    ) t  
    group by userAccount ,eatingDate
    order by eatingDate asc

---------------------查询的时候嵌套子查询-----------------------------------------

SELECT tb.account, ‘2016-10‘  month,
    ( max(CASE signStatus WHEN ‘准时‘ THEN total ELSE 0 END )+
     max(CASE signStatus WHEN ‘调休‘ THEN total ELSE 0 END)+
     max(CASE signStatus WHEN ‘迟到‘ THEN total ELSE 0 END)
     ) sumDay,
    (max(CASE signStatus WHEN ‘准时‘ THEN total ELSE 0 END)
   + max(CASE signStatus WHEN ‘调休‘ THEN total ELSE 0 END)) onTime,
     max(CASE signStatus WHEN ‘迟到‘ THEN total ELSE 0 END) late,
     max(CASE signStatus WHEN ‘请假‘ THEN total ELSE 0 END) leave,
     max(CASE signStatus WHEN ‘早退‘ THEN total ELSE 0 END) absenteeism,
    ( select count(*) from tb_workAttendance
where workStatus=‘加班‘ and
docdate between ‘2016-10-1‘ and ‘2016-10-31‘ and account = tb.account and signType=‘上班‘  group by workStatus) overtime,
    0 dayOff,
    (select sum (totalHour) totalHour  from tb_restApply where  docdate between ‘2016-11-01‘ and ‘2016-11-30‘ and account=tb.account group by account) totalHour
     from(
     select count(1) total, signStatus, account
     from tb_workAttendance
     where docdate between ‘2016-10-1‘ and ‘2016-10-31‘
     group by signStatus,account)
     tb
     group by account

-----------------------------------------------------------------------------------

 




































以上是关于T-sql 查询的主要内容,如果未能解决你的问题,请参考以下文章

T-SQL进阶02.理解SQL查询的底层原理

T-SQL查询语句

(3.13)T-SQL 简单查询

《T-SQL查询》读书笔记Part 1.逻辑查询处理知多少

T-SQL 数据库数据的高级查询

T-SQL查询2