2012-05-09 56 views
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 
     ); 

該查詢基本上創建了一個兩兩個子集之間的連接現有的桌子沒有通過建造臨時桌子(這是我的目標!);該查詢工作得很好。 但現在我想將查詢的結果插入到表中; 我已經嘗試過「插入」聲明,但它似乎失敗;特別是在執行insert into語句時,似乎我用來創建查詢的別名「a」和「b」無法識別。

我該如何解決這個問題?

+0

可以請你加INSERT SQL更可讀的格式,什麼是您所遇到的確切的錯誤? –

回答

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; 

基本上剛開擺脫了第一架的選擇應該幫助