读书人

有关SQL语句中GROUP BY的有关问题

发布时间: 2012-03-17 19:06:28 作者: rapoo

有关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里该怎么写

[解决办法]

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,表 iwhere i.serv_id=a.serv_idgroup 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,表 iwhere 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 ,        表 iwhere   i.serv_id = a.serv_idgroup by a.acc_nbr ,        a.serv_id
[解决办法]
SQL code
select a.acc_nbr,a.serv_id,sum(i.charge/100),m.TYPE_NAMEfrom 表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 = 6group 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


这个比较合理
[解决办法]
把子查询用关联来做 就好点 而且数据量大速度也会快点

读书人网 >SQL Server

热点推荐