SQL语句中count和sum使用的问题
我的SQL语句是这样的:selectf_calladdr,count(f_calladdr)asi,sum(F_long)ass,name,phonefromTab_Ph...
我的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也不行!
我要疯拉!谁还能帮忙!有没有其他写法了? 展开
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也不行!
我要疯拉!谁还能帮忙!有没有其他写法了? 展开
4个回答
展开全部
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 有这个字段
是不是 写成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 后面不能有计算.
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分组哈
from Tab_Phone as t,users as u
where u.id=t.f_calladdr
group by f_calladdr
你不能以name,phone分组哈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
计算格式和相加
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询