有关SQL语句中GROUP BY的有关问题
有关SQL语句中GROUP BY的问题
select a.acc_nbr,a.serv_id,sum(i.charge/100),
(select m.TYPE_NAME from 表m where m.type_code = a.std_tml_id and m.merge_group_id = 6)县名
from 表a,表 i
where i.serv_id=a.serv_id
group by
请高手指点一下这个GROUP BY后面得怎么写
不要告诉我把表m拿到from 后面哦,我就想知道包含子查询语句的字段在GROUP BY里该怎么写
------解决方案--------------------
select a.acc_nbr,a.serv_id,sum(i.charge/100),
(select m.TYPE_NAME from 表m where m.type_code = a.std_tml_id and m.merge_group_id = 6)县名
from 表a,表 i
where i.serv_id=a.serv_id
group by
请高手指点一下这个GROUP BY后面得怎么写
不要告诉我把表m拿到from 后面哦,我就想知道包含子查询语句的字段在GROUP BY里该怎么写
------解决方案--------------------
- SQL code
select a.acc_nbr,a.serv_id,sum(i.charge/100), (select m.TYPE_NAME from 表m where m.type_code = a.std_tml_id and m.merge_group_id = 6)县名 from 表a,表 i where i.serv_id=a.serv_id group by a.acc_nbr,a.serv_id
------解决方案--------------------
- SQL code
select a.acc_nbr,a.serv_id,sum(i.charge/100), (select m.TYPE_NAME from 表m where m.type_code = a.std_tml_id and m.merge_group_id = 6)县名 from 表a,表 i where i.serv_id=a.serv_id group by a.acc_nbr,a.serv_id --这样就行吧
------解决方案--------------------
- SQL code
--试试 select a.acc_nbr , a.serv_id , sum(i.charge / 100) , max(( select m.type_name from 表m where m.type_code = a.std_tml_id and m.merge_group_id = 6 )) 县名 from 表a , 表 i where i.serv_id = a.serv_id group by a.acc_nbr , a.serv_id
------解决方案--------------------
- SQL code
select a.acc_nbr,a.serv_id,sum(i.charge/100),m.TYPE_NAME from 表a a join 表i i on i.serv_id=a.serv_id left join 表m m on m.type_code = a.std_tml_id and m.merge_group_id = 6 group by a.acc_nbr,a.serv_id,m.TYPE_NAME
------解决方案--------------------
select a.acc_nbr,a.serv_id,sum(i.charge/100),m.TYPE_NAME
from 表a a join 表i i on i.serv_id=a.serv_id
left join 表m m on m.type_code = a.std_tml_id and m.merge_group_id = 6
group by a.acc_nbr,a.serv_id,m.TYPE_NAME
这个比较合理
------解决方案--------------------
把子查询用关联来做 就好点 而且数据量大速度也会快点