3

複雑な問題を実行しようとしています。次のような構造のクエリがあります。

Select 
       (
        SELECT     a.CD_MAD, b.* FROM 
                                  (
                                   SELECT '0' & [CD_SOC] & [CT_OPR] & [CD_MVT] & [CT_MVT] & [CD_RGL_FIN] & [CD_MODEPAIE] AS p, 
                                          [table3].CD_MAD FROM table3
                                  )  AS a 
        RIGHT JOIN (
                    SELECT trim([CODECIE]) & trim([TPOPER]) & trim([MVNT]) & trim([TPMVNT]) & trim([MODEPAIE]) & trim([MODEPAIE1]) AS p, 
                           tbl1.CODEENR, tbl1.CODECIE, tbl1.TPOPER, tbl1.MVNT,
                           tbl1.TPMVNT, tbl1.DTCOMPT, tbl1.DTDEBEF, tbl1.SIGNE,
                           tbl1.TTTCF, tbl1.TTTCG, tbl1.DEVISEF, tbl1.DEVISEG,
                           tbl1.CODEPDT, tbl1.NOCTR, tbl1.NOPIECE, tbl1.CATMIN, 
                           tbl1.NOCPT, tbl1.MODEPAIE, tbl1.THTF, tbl1.THTG, 
                           tbl1.TAXE_F, tbl1.TAXE_G, tbl1.FRAC, tbl1.APPORT, 
                           tbl1.VENDEUR, tbl1.MODEPAIE1, tbl1.TPEVNT, 
                           tbl1.FAITGEN, tbl1.DTSURV, tbl1.DURPR, tbl1.NOPIECE1,
                           tbl1.ANNEE, tbl1.MNTCOMCO, tbl1.MNTCOMAP, tbl1.ID 
                   FROM    tbl1
                  )  AS b ON b.p=a.p
        );

このクエリは基本的に、一時テーブルの構築を通過することなく、2つの既存のテーブルの2つのサブセット間の結合を作成します(これが私の目的です)。そのクエリは問題なく機能します。しかし、今度はクエリの結果をテーブルに挿入したいと思います。私はすでに「insertinto」ステートメントを試しましたが、失敗したようです。特に、クエリの作成に使用したエイリアス「a」と「b」は、insertintoステートメントを実行するときに認識されないようです。

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

0
INSERT INTO table (user, column1, column2) 
SELECT      a.CD_MAD, b.* FROM 
                               (
                                SELECT '0' & [CD_SOC] & [CT_OPR] & [CD_MVT] & [CT_MVT] & [CD_RGL_FIN] & [CD_MODEPAIE] AS p, 
                                       [table3].CD_MAD FROM table3
                               )  AS a 
RIGHT JOIN (
            SELECT trim([CODECIE]) & trim([TPOPER]) & trim([MVNT]) & trim([TPMVNT]) & trim([MODEPAIE]) & trim([MODEPAIE1]) AS p, 
                   tbl1.CODEENR, tbl1.CODECIE, tbl1.TPOPER, tbl1.MVNT,
                   tbl1.TPMVNT, tbl1.DTCOMPT, tbl1.DTDEBEF, tbl1.SIGNE,
                   tbl1.TTTCF, tbl1.TTTCG, tbl1.DEVISEF, tbl1.DEVISEG,
                   tbl1.CODEPDT, tbl1.NOCTR, tbl1.NOPIECE, tbl1.CATMIN, 
                   tbl1.NOCPT, tbl1.MODEPAIE, tbl1.THTF, tbl1.THTG, 
                   tbl1.TAXE_F, tbl1.TAXE_G, tbl1.FRAC, tbl1.APPORT, 
                   tbl1.VENDEUR, tbl1.MODEPAIE1, tbl1.TPEVNT, 
                   tbl1.FAITGEN, tbl1.DTSURV, tbl1.DURPR, tbl1.NOPIECE1,
                   tbl1.ANNEE, tbl1.MNTCOMCO, tbl1.MNTCOMAP, tbl1.ID 
             FROM  tbl1
              )  AS b ON b.p=a.p;

基本的に最初のブラケットを取り除き、selectが役立つはずです

于 2012-05-09T09:44:35.560 に答える