Insert into from CTE

后端 未结 2 1509
囚心锁ツ
囚心锁ツ 2020-12-09 10:34
  WITH DTL AS
  (SELECT CMPI_CODE,
         CMN_CDTY_MTRL,
         CMI_WT_FACTOR,
         CMI_CNTRCT_RATE,
         \'PL\',
         PRESENT_PRICE,
         TRM_CO         


        
相关标签:
2条回答
  • 2020-12-09 10:47

    Seems that Insert cannot be used as first statement after common table expression. Try this,

        INSERT iNTO IPA_PRCADJ_HDR(TRM_CODE,IPAPH_ADJ_FACTOR,IPAPH_AMT_CUR,IPAPH_REMARKS)
        SELECT * FROM 
        (
    
          WITH DTL AS
          (SELECT CMPI_CODE,
                 CMN_CDTY_MTRL,
                 CMI_WT_FACTOR,
                 CMI_CNTRCT_RATE,
                 'PL',
                 PRESENT_PRICE,
                 TRM_CODE,
                 ROUND(((NVL(PRESENT_PRICE,1)*CMI_WT_FACTOR) / CMI_CNTRCT_RATE),2) AS PL_FACTOR
          FROM VW_CMD_MATERIAL WHERE TRM_CODE = 41
          )
          SELECT TRM_CODE,SUM(PL_FACTOR) AS PL_FACTOR,((SUM(PL_FACTOR)*10)) AS AMT_CUR,'asdf' 
          FROM DTL GROUP BY (TRM_CODE)
        );
    
    0 讨论(0)
  • 2020-12-09 11:01

    This is the syntax to insert into a table from a CTE:

    -- CREATE TABLE tmp ( tmp_id NUMBER(10) );
    
    INSERT INTO tmp( tmp_id )
      WITH cte AS (
        SELECT 1 AS tmp_id FROM dual
      )
      SELECT tmp_id
      FROM cte;
    
    0 讨论(0)
提交回复
热议问题