这样的sql语句???(100分)

  • 主题发起人 主题发起人 coffeeffee
  • 开始时间 开始时间
C

coffeeffee

Unregistered / Unconfirmed
GUEST, unregistred user!
有这样一个sql语句,需按分组统计几个字段的总和及字段不为0的数目,如下所示:
select sum(a3),sum(a4),count(a3),count(a4) from t1 group by a1,a2 ;
t1表有a1,a2,a3,a4四个字段,现在以a1,a2为条件进行分组,并以此为条件
统计a3,a4的总和及a3,a4中不为0的记录数,似乎用一条语句无法实现,请指教。
 
select sum(a3),sum(a4) from t1
group by a1,a2
having count(a3)>0 and count(a4)>0;
 
??假设a3,a4的默认值default=0;
select sum(a3),sum(a4),count(a3),count(a4) from t1
where a3<>0 and a4<>0 group by a1,a2
 
确实用一条语句无法实现,因为,条件“a3,a4不为0”,使得sum(a3),sum(a4)
得出的结果不正确
 
如果要对一个字段取SUM,且有ORDER BY 字句,则必须在ORDER BY 字句中包含该字段。正确
的SQL语句应该是:
select sum(a3),sum(a4),count(a3),count(a4) from t1 group by a1,a2,a3,a4;
 
一条SQL好象不行吧
 
用两条语句实现。
 
怕是难,也许有办法,我回去想想
 
搞定:
select a.*,b.*,c.* from (select sum(a3) as sum_a3,sum(a4) as sum_a4 from
t1 group by a1,a2,a3,a4) a ,
(select count(a3) as count_a3 from t1 where a3<>0) b,
(select count(a4) as count_a from t1 where a3<>0) c
在sql server中已测试成功
 
接受答案了.
 

Similar threads

回复
0
查看
863
不得闲
回复
0
查看
1K
不得闲
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部