Tri*_*.PS 1 sql vb.net sql-server asp.net
我想要计算我的表中具有值> = 10的所有列.这是我的表:
日期##### || Value1 || Value2 || 值3
23/04/2014 || __ 1,2 || __ 12,3 || __ 10 ||
23/04/2014 || __ 11,2 || ____ 3 || __ 10,3 ||
24/04/2014 || __ 10,9 || ____ 3 || __ 1 ||
我希望它显示:
日期##### || 数||
23/04/2014 || __ 4 ||
24/04/2014 || __ 1 ||
假设我有很多日期,我希望它只显示最后3行.
这是我的第一个代码:
Dim strCommand As String = "Select Date, count(*) as tcount from tbBooth having count(*) >= 10 group by date"
Run Code Online (Sandbox Code Playgroud)
已根据Collapsar的解决方案改为:
Dim strCommand As String = "Select t.d, sum(t.valcount) cnt from (select [date] AS d, CASE WHEN t1.ManualAssists1 >= 10 THEN 1 ELSE 0 END + CASE WHEN t1.ManualAssists2 >= 10 THEN 1 ELSE 0 END + CASE WHEN t1.ManualAssists3 >= 10 THEN 1 ELSE 0 END AS valcount from tbBooth t1) t group by t.d"
Run Code Online (Sandbox Code Playgroud)
它是有效的,但我想只显示基于ASC顺序的最后3行.反正怎么办?
谢谢你的进步......
尝试
select t.d
, sum(t.valcount) cnt
from (
select [date] AS d
, CASE WHEN t1.value1 >= 10 THEN 1 ELSE 0 END
+ CASE WHEN t1.value2 >= 10 THEN 1 ELSE 0 END
+ CASE WHEN t1.value3 >= 10 THEN 1 ELSE 0 END
AS valcount
from table t1
) t
group by t.d
;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1064 次 |
| 最近记录: |