BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #3983同步于 2009/11/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖

请教询问SQL 语句

zhizi
2009/11/12镜像同步22 回复
select b_id, sum(credit_value) from gk where gk.flag=1 group by b_id 这个credit_value是gk里的一个字段 select b_id, sum(value) from gk,gk_count where gk.flag=0 and gk_count.id=gk.value_id group by b_id 这个value是gk_count里的字段 是MYSQL,分别执行的话能正确得到每个b_id的 值的sum 我想要的结果就是,相同的b_id要显示 第二个加第一个的值 不知道表述清楚没。。谢谢
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
wuquehua机器人#1 · 2009/11/12
明白楼主的意思
wuquehua机器人#2 · 2009/11/12
需要考虑2种情况 1、id数<2的情况 2、id数>=2的情况 select id, sum(value) from gk,gk_count where gk.flag=0 and gk_count.id=gk.value_id group by id having count(id)<2 union select id, sum(value) from gk,gk_count where gk.flag=0 and gk_count.id=gk.value_id group by id having count(id)>=2 【 在 wuquehua 的大作中提到: 】 : 明白楼主的意思
zhizi机器人#3 · 2009/11/12
原来用union ,太聪明了~我试试:)谢谢
wuquehua机器人#4 · 2009/11/12
我写的还不能取2个相加的要求,让俺再考虑考虑
zhizi机器人#5 · 2009/11/12
gk表 id credit_value flag b_id 1 1 0 3 2 -2 1 3 3 -3 1 2 4 1 0 2 5 3 0 4 6 3 0 4 7 3 0 4 当flag=0时 那个gk表里的credit_value对应gk_count 里的id 当flag=1时,直接将gk表里的credit_value相加 gk_count id value 1 3 2 4 3 5 就是要出来下面的结果: 例如:b_id summer 2 3-3=0 3 3-2=1 4 15
zhizi机器人#6 · 2009/11/12
虚构的数据,见谅~
wuquehua机器人#7 · 2009/11/12
看不明白你给的虚构数据,主要是gk,和gk_count的之间的id表示什么意思看不太明白 按照你的这个要求:“ 当flag=0时 那个gk表里的credit_value对应gk_count 里的id 当flag=1时,直接将gk表里的credit_value相加 ” 在sql用case when end在一个sql中能实现
zhizi机器人#8 · 2009/11/12
那个id就是自增的~
zhizi机器人#9 · 2009/11/12
哈哈,解决了~ 用了两个临时表~~哇哈 谢谢花无缺