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”似乎无法识别。

我该如何解决这个问题?

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;

基本上摆脱第一个括号并选择应该会有所帮助

于 2012-05-09T09:44:35.560 回答