2016-10-19 5 views
0

このビューで提供されるデータを取得する必要があります。 BLICK_1_DESCR_LIST。2つのビューをマージしよう

私はそれを直接作成する方法を見つけませんでした。そこで、BLICK_1_DESCR_NO_LISTビューを作成しました。このビューは、2番目のビューBLICK_1_DESCR_LISTで使用されています。

私はより良い1つのビューでそれをしたいと思います。

CREATE VIEW BLICK_1_DESCR_NO_LIST 
AS SELECT ITEM_ID , MIN(ITEM_DESCR_NO) MIN_I_D_NO, 
COUNT(ITEM_DESCR_NO) COUNT_I_D_NO FROM BLICK_ITEM_DESCR 
GROUP BY ITEM_ID 
UNION 
SELECT ID , 0 ZERO, 0 ZERO2 FROM BLICK_ITEM 
LEFT JOIN BLICK_ITEM_DESCR ON BLICK_ITEM.ID = BLICK_ITEM_DESCR.ITEM_ID 
WHERE ITEM_DESCR_NO IS NULL; 


CREATE VIEW BLICK_1_DESCR_LIST 
AS SELECT V1.ITEM_ID, V1.MIN_I_D_NO, V1.COUNT_I_D_NO, T1.ITEM_DESCR 
FROM BLICK_1_DESCR_NO_LIST V1 
LEFT JOIN BLICK_ITEM_DESCR T1 ON V1.ITEM_ID = T1.ITEM_ID 
    AND V1.MIN_I_D_NO = T1.ITEM_DESCR_NO 
    ORDER BY ITEM_ID; 

答えて

0

あなただけのサブクエリとして最初のビューを組み込むことができます。

CREATE VIEW BLICK_1_DESCR_LIST AS 
    SELECT V1.ITEM_ID, V1.MIN_I_D_NO, V1.COUNT_I_D_NO, T1.ITEM_DESCR 
    FROM ((SELECT ITEM_ID, MIN(ITEM_DESCR_NO) as MIN_I_D_NO, 
COUNT(ITEM_DESCR_NO) as COUNT_I_D_NO 
      FROM BLICK_ITEM_DESCR 
      GROUP BY ITEM_ID 
     ) UNION 
      (SELECT ID, 0, 0 
      FROM BLICK_ITEM LEFT JOIN 
       BLICK_ITEM_DESCR 
       ON BLICK_ITEM.ID = BLICK_ITEM_DESCR.ITEM_ID 
      WHERE ITEM_DESCR_NO IS NULL 
     )) V1 LEFT JOIN 
     BLICK_ITEM_DESCR T1 
     ON V1.ITEM_ID = T1.ITEM_ID AND 
      V1.MIN_I_D_NO = T1.ITEM_DESCR_NO 
    ORDER BY ITEM_ID; 
関連する問題