2012-04-13 40 views
1

我有一个基于各种标准来计数记录的查询,但我想根据上述标准将结果拆分为两个分组字段。有没有办法在查询内部做到这一点 - 还是有必要有两个查询?根据where子句使用SQLite汇总结果

select count(PT_TASK_ASSAY_DISP) as 'Count' from vbasedata v 
where 
    v.PT_TASK_ASSAY_DISP like 'SS%' or 
    (v.PT_TASK_ASSAY_DISP like 'IP%' and 
    v.PT_TASK_ASSAY_DISP not like 'IP CUT' and 
    v.PT_TASK_ASSAY_DISP not like 'IP NEG'); 

我试图按IP和SS分组以获得总数。

回答

2

我不是很确定你想要什么。但是,如果您希望每个'SS%'有一个计数,而'IP%'需要一个计数。那么可能是这样的:

select 
    SUM(CASE WHEN PT_TASK_ASSAY_DISP LIKE 'SS%' THEN 1 ELSE 0 END) as SSCount, 
    SUM(CASE WHEN PT_TASK_ASSAY_DISP LIKE 'IP%' THEN 1 ELSE 0 END) as IPCount 
from vbasedata v 
where 
    v.PT_TASK_ASSAY_DISP like 'SS%' or 
    (v.PT_TASK_ASSAY_DISP like 'IP%' and 
    v.PT_TASK_ASSAY_DISP not like 'IP CUT' and 
    v.PT_TASK_ASSAY_DISP not like 'IP NEG'); 
+0

这正是我所期待的。非常感谢!我不确定是否有必要有一个'TASK_ASSAY'字段来分组SS和IP记录。 – gsforfree 2012-04-13 17:38:05