SQL语句中count和sum使用的问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 12:22:16
我的SQL语句是这样的:
select f_calladdr,count(f_calladdr) as i,sum(F_long) as s,name,phone
from Tab_Phone as t,users as u
where u.id=t.f_calladdr
group by f_calladdr,name,phone
f_calladdr 其实就是一个ID标识 我要统计它出现了多少次 也就i
F_long是一个数值 我要把它们根据分组后的ID标识查出再求和,也就是s
我这样写在数据库中执行的时候它会显示出所有数据,但是在我页面输出的时候它只会输出其中的一条或几条。这是为什么啊?现在就是说有没有其他的办法实现我的目的啊,我感觉好像就是count和sum排序这里有问题,但是找不出来错误所在.

出来的效果是这样的:
name phone i s
maik 138... 8 20
... ... ... ...
select f_calladdr,count(f_calladdr) as i,sum(F_long) as s,name,phone
from Tab_Phone as t,users as u
where u.id=t.f_calladdr
group by f_calladdr,name,phone
刚测试完这样是好使的,但是为什么在后面加个order by sum(F_long) desc就不好使了呢
哪位高手知道啊?怎么进行排序啊!帮个忙!
谢谢各位帮忙,但是问题还是没有解决!while(rs->next) 把name phone 去了也不行 by s也不行!
我要疯拉!谁还能帮忙!有没有其他写法了?

ps:我这样写在数据库中执行的时候它会显示出所有数据
是不是 写成if(rs->next)
应该是while(rs->next)
add: ==<< 但是为什么在后面加个order by sum(F_long) desc就不好使了呢 哪位高手知道啊?怎么进行排序啊!帮个忙
你可以在你最外面再包装个select语句的啊
select * from (你的sql) a order by a.s desc

==<< while(rs->next) 把name phone 去了也不行 by s也不行!
这个是因为你的group by f_calladdr,name,phone 有这个字段

select f_calladdr,count(f_calladdr) as i,sum(F_long) as s,name,phone
from Tab_Phone as t,users as u
where u.id=t.f_calladdr
group by f_calladdr,name,phone

刚测试完这样是好使的,但是为什么在后面加个order by sum(F_long) desc就不好使了呢

改一下order by s

order by 后面不能有计算.

select f_calladdr,count(f_calladdr) as i,sum(F_long) as s
from Tab_Phone as t,users as u
where u.id=t.f_calladdr
group by f_calladdr
你不能以name,phone分组哈

计算格式和相加