Dav*_*ave 2 sql t-sql sql-server
我在Case语句中使用多个And时遇到问题.
我的数据库看起来像:
Enrollment Paperless Validated
0 1 0
1 0 1
0 1 0
1 1 1
0 0 0
0 1 0
0 0 0
0 1 0
1 1 1
0 1 0
Run Code Online (Sandbox Code Playgroud)
所以我的查询看起来像这样:
Select
Count(case when [Enrollment] = 1 and [Paperless] = 1 and [Validated] = 1 then 1 else 0 end) as [Paperless]
,Count(case when [Enrollment] = 1 and [Paperless] = 1 and [Validated] = 1 then 1 else 0 end) as [Online_Only]
,Count(*) as "Total"
FROM [my_table]
Run Code Online (Sandbox Code Playgroud)
Sql Fiddle:http://sqlfiddle.com/#!3/61202/5
正如您从sql小提琴中看到的那样,当case语句中的count应该是不同的时,count总是为20.我只是在我的案例陈述中做错了什么,或者我是否必须在子查询中执行这些操作?
戴夫
COUNT
无论实际值如何,都返回true.所以使用:
SUM(CASE ...)
Run Code Online (Sandbox Code Playgroud)
代替
COUNT(CASE ...)
Run Code Online (Sandbox Code Playgroud)