0

たとえば、私は次のことをしています。

WITH    T1 as (select xxx as MYALIAS FROM T)
        T2 as (select yyy from T1)

SELECT  T2.ID,
        MAX(MYALIAS) AS MAX_ALIAS,      
        T.AN_ALIAS

FROM   T2

WHERE  MAX_ALIAS <> T.AN_ALIAS 
GROUP  BY T2.ID, T.AN_ALIAS

結果を。という名前のテーブルとして想像してみましょうMY_RESULT_TABLE

MY_RESULT_TABLEを他のいくつかの列に結合する必要があります。
取得する必要があり TEMP_TABLE = MY_RESULT_TABLE + SOME JOINSます。

問題は、このMY_RESULT_TABLEをどのように使用できるかということです。

やろうとした WITH MY_RESULT_TABLE AS (the code above)...うまくいかなかった...

編集
私の他の問題は、MY_RESULT_TABLEからの選択からいくつかの値をMY_TABLEに挿入する必要があることです...

INSERT INTO MY_TABLE_TO_INSERT ...
SELECT a b c FROM MY_RESULT_TABLE
4

1 に答える 1

5

詳細を説明したとおりに機能するはずですが、各 CTE をカンマで区切ることを忘れないでください。

編集INSERT と UPDATE にも CTE を使用できます。挿入用に更新されました。

;
WITH T1 AS 
(
    SELECT xxx 
    AS MYALIAS FROM T
),
T2 AS 
(
    SELECT yyy 
    FROM T1
),
MY_RESULT_TABLE AS 
(
    SELECT  T2.ID,
            MAX(MYALIAS) AS MAX_ALIAS,      
            T.AN_ALIAS
    FROM   T2
    WHERE  MAX_ALIAS <> T.AN_ALIAS 
    GROUP  BY T2.ID, T.AN_ALIAS

)
INSERT INTO MY_TABLE_TO_INSERT(col1, col2, col3, ...)
    SELECT ID, MAX_ALIAS, xyz.OtherColumnsHere
        FROM MY_RESULT_TABLE
        INNER JOIN xyz on ...
于 2012-11-23T18:46:28.510 に答える