`

sql case when 较复杂的用法

 
阅读更多

select emp_id,
       biz_date,
       case when
   sum(case when morning =1 and afternoon =1
     then 1
else 0
   end
               )
   +
   max(case when morning =1 and afternoon =0
then 1
else 0
   end
               )
               +
   max(case when morning = 0 and afternoon =1
     then 1
else 0
   end
               )
   >=2
      then 2
               else
  sum(case when morning =1 and afternoon =1
   then 1
  else 0
  end)
  +
  max(case when morning =1 and afternoon =0
   then 1
  else 0
  end)
  +
  max(case when morning = 0 and afternoon =1
   then 1
  else 0
  end)
       end as vsttimes
from
(
     SELECT  
             emp_id,
             biz_date,
             sr_id,
             max(case when convert(varchar(2),intime,108) < 12
                           then 1
                      else 0
                 end) as morning,

             max(case when convert(varchar(2),intime,108) >= 12
                           then 1
                      else 0
                 end) as afternoon
 
FROM RPT_INOUT_STORE WITH (nolock)
WHERE FUNC_CODE='F50S01'
      AND BIZ_DATE>= @current_year+'-01-01'
      AND BIZ_DATE<= @current_year+'-12-31'
GROUP BY EMP_ID,biz_date,sr_id

) a
group by a.emp_id,a.biz_date
分享到:
评论

相关推荐

    case when和sum case when 写法及拼接字段

    ### Case When 用法 在 SQL 查询语言中,`CASE WHEN` 结构是一种非常有用的工具,可以用来根据条件返回不同的值。它的工作原理类似于编程语言中的 `if...else` 语句,但在 SQL 中用于创建动态列或进行复杂的条件...

    sql case when exists not exists in not in

    在SQL查询中,`CASE WHEN`、`EXISTS`、`NOT EXISTS`以及`IN`和`NOT IN`是常用的操作符,它们用于处理复杂的条件判断和数据筛选。这些概念对于理解和编写高效的SQL语句至关重要,尤其是在数据分析和数据库管理中。 `...

    oracle where case when where后面跟case when

    总之,`WHERE CASE WHEN`的组合在Oracle SQL中是一个强大的工具,它允许我们根据复杂逻辑进行数据筛选,灵活适应各种查询需求。理解并熟练掌握这一技巧对于数据库管理员和开发者来说至关重要,可以帮助他们在处理...

    sql数据库 转 Access SQL语句改写之 Case When Then When Then Else End

    ### SQL数据库转Access SQL语句改写:Case When Then When Then Else End #### 知识点一:SQL CASE WHEN THEN 结构与Access IIF及SWITCH函数对比 在进行SQL到Access SQL的转换过程中,一个重要的知识点是了解如何...

    SQL case_when用法

    本文档介绍了SQL中case...when的用法。

    SQL Server中Case 的不同用法

    CASE表达式提供了很大的灵活性,可以实现复杂的逻辑判断,使得SQL查询更具有可读性和功能性。在处理数据时,它能够帮助你构建出更精细、更具针对性的数据分析和报表。通过熟练掌握CASE的用法,你可以更好地理解和...

    Oracle_case_when_用法

    在 Oracle 数据库中,`CASE WHEN` 表达式提供了一种在 SQL 查询中实现条件判断的方法,这使得开发人员能够在不使用 PL/SQL 的情况下编写更为灵活和复杂的查询语句。`CASE WHEN` 与 `DECODE()` 函数相似,但因其符合 ...

    SQL中Case语句用法讨论_BJ

    在SQL查询语言中,`Case`语句是一个非常强大的功能,用于在查询中执行条件判断,它可以根据不同的条件返回不同的结果,这使得SQL能够处理更加复杂的数据筛选和转换需求。`Case`语句有两种基本形式:简单`Case`表达式...

    详细解析 mysql 中的 case when 语句的使用

    ### MySQL中的Case When语句详解 ...此外,`CASE WHEN`还可以与其他SQL语句结合使用,比如聚合函数、子查询等,以满足更复杂的业务需求。希望本文能帮助你更好地理解和使用MySQL中的`CASE WHEN`语句。

    sql中的case用法

    SQL 中 Case 用法 Case 语句是 SQL 中一种强大的语句,用于根据不同的条件执行不同的操作。它可以用来实现复杂的逻辑操作,并且可以与其他 SQL 语句结合使用以实现更加复杂的查询。 SQL 中 Case 语句有两种格式:...

    SQL中case语法的使用

    ### SQL中的Case语法使用详解 在SQL查询语言中,`CASE`语句是一个非常重要的功能,它可以用来构建复杂的条件逻辑,实现对数据的灵活处理。...希望本文能够帮助大家更好地理解和掌握`CASE`语句的使用方法。

    SQL__case_when_then_的用法

    SQL__case_when_then_的用法

    SQL利用Case When Then多条件判断

    sql 存储过程 常见的问题 自己用也可分享

    CASE的用法 (Transact-SQL)

    ### CASE的用法 (Transact-SQL) #### 概述 `CASE` 是 Transact-SQL 中一个非常重要的关键字,用于根据不同的条件返回不同的结果。它支持两种主要的格式:简单表达式和搜索表达式。这两种格式都能有效地帮助开发者...

    case when then

    一条sql语句就能让你case when then怎么用,什么时候用

    SqlServer使用 case when 解决多条件模糊查询问题

    在SQL Server中,`CASE WHEN` 语句是一种强大的逻辑表达式,用于处理基于不同条件的复杂查询。在多条件模糊查询中,`CASE WHEN` 可以避免在程序端或数据库端拼接SQL字符串,从而减少代码量,提高安全性,并避免SQL...

    sql 中 case when 语法使用方法

    没有,用case when 来代替就行了. 例如,下面的语句显示中文年月 代码如下: select getdate() as 日期,case month(getdate()) when 11 then ‘十一’ when 12 then ‘十二’ else substring(‘一二三四五六七八九十’,...

    SQLsevrer CASE用法

    ### SQL Server 中 CASE 表达式的深入解析与应用实例 #### 概述 在 SQL Server 数据库管理系统中,`CASE` 表达式是一种非常强大的工具,用于在查询语句中进行条件判断和数据处理。它允许用户根据指定的条件返回...

    case乱码解决

    mysql 中case when 遇到乱码解决。查询语句中含有case引起中文乱码解决方法

Global site tag (gtag.js) - Google Analytics