CREATE OR REPLACE VIEW TOTAL_NUM AS
SELECT OSSMAN.ProInStore.ProId, SUM(OSSMAN.ProInStore.ProNum) AS Total
FROM OSSMAN.ProInStore INNER JOIN
OSSMAN.Product ON (OSSMAN.ProInStore.ProId = OSSMAN.Product.ProId)
GROUP BY OSSMAN.ProInStore.ProId;

解决方案 »

  1.   

    INNER JOIN是等价连接。
    ON表示通过什么字段联系到一起。你写的VIEW是因为缺少了字段的信息,所以不对。CREATE OR REPLACE VIEW TOTAL_NUM 
    (ProId,Total)
    AS
    SELECT 
    OSSMAN.ProInStore.ProId, SUM(OSSMAN.ProInStore.ProNum) AS Total
    FROM OSSMAN.ProInStore 
    INNER JOIN OSSMAN.Product 
    ON OSSMAN.ProInStore.ProId = OSSMAN.Product.ProId
    GROUP BY OSSMAN.ProInStore.ProId;
      

  2.   

    不好意思,我刚才测试了一下,不写字段名,也是可以的。我测试的例子。CREATE OR REPLACE VIEW ZHOUXY.TEST
    AS
    SELECT SALE.SHOPID AS SHOPID, SUM(SALE.SALENUM) AS Total
    FROM SALE INNER JOIN
    T2 ON SALE.SHOPID = T2.SHOPID
    GROUP BY SALE.SHOPID;
      

  3.   

    INNER JOIN 和等号没有区别吗?
      

  4.   

    这个语句的设定对ORA版本没有要求吧,我用的是比较旧的8.01但相关文档是9I的
      

  5.   

    9i以下的版本不支持join改成
    CREATE OR REPLACE VIEW TOTAL_NUM AS
    SELECT OSSMAN.ProInStore.ProId, SUM(OSSMAN.ProInStore.ProNum) AS Total
    FROM OSSMAN.ProInStore,OSSMAN.Product
             where OSSMAN.ProInStore.ProId = OSSMAN.Product.ProId
    GROUP BY OSSMAN.ProInStore.ProId;
      

  6.   

    我们所见的几种JOIN关键字是从9I开始支持的,
    主要是为了套SQL标准,join关键字符合ISO/ANSI标准