用PL/SQL中,有两个表t_a,t_b,要从a中select count(id)的数,然后group by 地区,
然后选择a中的 count的字段,再有一个where 连接t_a,t_b,应该要怎么写呢?
我开始写的是:
select
a.c_diqu, a.c_zongrs
from
(select c_diqu as c_diqu,count(c_id)as c_zongrs from t_a)a,
t_b b
where
a.c_id = b.c_pid出现的问题是:a.c_id出现无效的标志
请问各位高手,是什么问题?要怎么写才对?
然后选择a中的 count的字段,再有一个where 连接t_a,t_b,应该要怎么写呢?
我开始写的是:
select
a.c_diqu, a.c_zongrs
from
(select c_diqu as c_diqu,count(c_id)as c_zongrs from t_a)a,
t_b b
where
a.c_id = b.c_pid出现的问题是:a.c_id出现无效的标志
请问各位高手,是什么问题?要怎么写才对?
select a.c_xianjiuzdw as a.c_danwei,count(c_id) as c_zongrens from t_congyeryjbxx a,
t_yidongjl b where a.c_id = b.c_pid group by a.c_xianjiuzdw
这样的话,得出来的数据有误,一定要先得出count 的数据,再加入where
a.c_diqu, a.c_zongrs
from
(select c_diqu as c_diqu,count(c_id)as c_zongrs from t_a)a,--没有group by
t_b b
where
a.c_id = b.c_pid--你在a里面没有select c_id这个字段,当然出错啦
from (select c_diqu as c_id,count(c_id)as c_zongrs from t_a group by c_diqu)a,t_b b
where a.c_id = b.c_pid如果c_diqu,c_id是不同的列,就分别GROUP BY
第一,先要求出A表中c_id的个数
然后再根据地区分组,
第二,分组之后,再求出A表中c_id = B表中c_pid的A.c_id的数
如果你只对地区分组,1个分组里可能有多个c_id,所以你不能select c_id,试想对应1个c_id,那count(c_id)应该是多少,这是不合逻辑的;所以如果1个c_diqu只对应1个c_id,那就可以group by c_diqu,c_id
第一,先要求出A表中c_id的个数
然后再根据地区分组,
-------------------------------
这样的话求出的是所有的c_id个数吗?应该是先分组再求每个分组的count吧
第二,分组之后,再求出A表中c_id = B表中c_pid的A.c_id的数
------------------
看不出来按地区分组后有什么作用,最好楼主能把你要的数据贴出来