我有一张表如A表字段有 id num name ,B表有字段id ,iaid,c1,c2
B表的iaid是外键对应A表id并且非空.A表的num没有任何记录.
也就是说只有A表有记录,B表才能根据A表的记录才能录入.现在我想创建一个view,就是能不能统计B表iaid=A表id的行数并放到视图的num字段里面?
类似象下面不正确的sql 
create or replace test as select id,name,num=
(select count(b.iaid) from a,b where b.iaid=a.id) 
from a;

解决方案 »

  1.   

    你这能对吗?
    视图有三个字段,SELECT只出来一个字段
      

  2.   

    你用分析函数不就行了select a.id,a.name,count(*) over() num 
     from a,b where b.iaid=a.id
      

  3.   

    估计LZ是要这个CREATE OR REPLACE view A_id_num as
    SELECT id, NAME, COUNT(1) num
      FROM a, b
     WHERE a.id = b.iaid
     GROUP BY a.id, a.NAME
      

  4.   

    其实我就是想让A表的num字段表示B表里面有多少行(主外键对应),用表的话要在代码里面处理,不想这样,所以想用视图代替这么一个简单的统计功能,也就是说想用视图先统计好.
      

  5.   

    谢谢各位大哥给我的提示我是这样做的CREATE OR REPLACE view test as
    SELECT id, NAME, COUNT(b.iaid) as num
      FROM a, b
     WHERE a.id = b.iaid
     GROUP BY a.id, a.NAME应该是正确的.这样我可以在程序里面当这个做表用了.