日期:2014-05-16  浏览次数:21506 次

oracle 查询结果当作表名,紧急求助中!!!!
有表A,B,C,D,E,F,G
其中A表中字段如下
 id     tablename 
 1      B
 2      C
 3      D
 4      E
 5      F
 6      G
B,C,D ,E,F,G这几张表中,每个表中都有几条数据,
现在需求如下:查询每个表中总共有几条记录,用一条SQL查询出来,
我这样写总是报错:
select count(*) from (select tablenam from A)
该如何写sql能得到如下结果
 tablename   count(*)
 B               3
 C               3
 D               2
 E               4
 F               2
 G               5
------最佳解决方案--------------------

select t.table_name,t.num_rows
from user_tables t
where t.table_name in (select tablename from A)

------其他解决方案--------------------
select count(*) from (select tablenam from A)

其中select tablenam from A返回的是多条记录,“select coun(*) from 多条记录”肯定报错
------其他解决方案--------------------
非常感谢#1楼的horizonlyhw,你的SQL是对的,我用了你的sql查到正确的结果了,就是我的数据库中的表不是user_tables,如果其他的人也有类似的问题,需要注意哦!!!也感谢#2楼的caolong0210,虽然你说了为什么出错,但是没有给解决方法啊,也感谢你了