急求得到记录条数SQL语句!

Jacky_Sunx 2008-01-24 04:37:19
有两个表Table A、Table B是有联系的,如下图
我现在要得到的结果如Result所示
请问如何写SQL语句?
--------------------------------
Table A

NAME_ID Record_A Record_B
1 aaa xxx
1 bbb yyy
1 ccc
2 ddd zzz
2 qqq
3 ttt
4 eee iii
4 fff mmm
5 ggg nnn
5
5 hhh
… … …

--------------------------------
Table B

NAME_ID NAME
1 namea
2 nameb
3 namec
4 named
5 namee
… …
--------------------------------


Result

NAME Record_Num_A Record_Num_B
namea 3 2
nameb 1 2
namec 0 1
named 2 2
namee 2 1
… … …

...全文
187 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
郑燕辉 2008-01-28
  • 打赏
  • 举报
回复


select name,nvl(sum_record_A,0),nvl(sum_record_B,0) from

(
select name,sum_record_A,sum_record_B from Tbl_z_b
left join (
select name_id, count(record_A) sum_record_A,count(record_B) sum_record_B from tbl_z_a
where exists(select 1 from Tbl_z_b where Tbl_z_b.name_id = tbl_z_a.name_id)
group by name_id
) tbl_test on Tbl_z_b.name_id=tbl_test.name_id

)



Croatia 2008-01-24
  • 打赏
  • 举报
回复
使用Count函数的时候,

COUNT(*)的时候,包括NULL的行
COUNT(字段名)は、不包括NULL的行。

是不是疑惑这个?
Croatia 2008-01-24
  • 打赏
  • 举报
回复
LZ有什么疑惑的地方吗?
hyrongg 2008-01-24
  • 打赏
  • 举报
回复
好像直接Group by就可以出来结果

SQL> create table ta(
2 name_id int,
3 record_A nvarchar2(20),
4 record_B nvarchar2(20)
5 );

Table created

SQL> create table tb(
2 name_id int,
3 name nvarchar2(20)
4 );

Table created

SQL> insert into ta
2 select 1,'aaa','xxx' from dual
3 union
4 select 1,'bbb','yyy' from dual
5 union
6 select 1,'ccc',null from dual
7 union
8 select 2,'ddd','zzz' from dual;

4 rows inserted

SQL> insert into tb
2 select 1,'namea' from dual
3 union
4 select 2,'nameb' from dual;

2 rows inserted

SQL> select b.name,count(a.record_a),count(a.record_b) from ta a
2 inner join tb b on a.name_id=b.name_id
3 group by b.name;

NAME COUNT(A.RECORD_A) COUNT(A.RECORD_B)
---------------------------------------- ----------------- -----------------
namea 3 2
nameb 1 1


Jacky_Sunx 2008-01-24
  • 打赏
  • 举报
回复
--------------------------------
Table A

NAME_ID Record_A Record_B
1 aaa xxx
1 bbb yyy
1 ccc
2 ddd zzz
2 qqq
3 ttt
4 eee iii
4 fff mmm
5 ggg nnn
5
5 hhh
… … …

--------------------------------
Table B

NAME_ID NAME
1 namea
2 nameb
3 namec
4 named
5 namee
… …
--------------------------------


Result

NAME Record_Num_A Record_Num_B
namea 3 2
nameb 1 2
namec 0 1
named 2 2
namee 2 1
… … …

17,078

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧