日期:2014-05-17  浏览次数:20540 次

在线求解答 向一个表中插入另一张表并剔除重复数据
INSERT INTO REPORTING_PROGRESS(LEDGERS_DATE,DEPT_ID,REPORT_ID ,FLAG,REMARK) 
 SELECT case report_type when '1' then '2014年'
                         when '2' then '2014年1季度' 
                         when '3' then '2014年01月' 
                         end as LEDGERS_DATE,DEPT_ID = '330000',ID as REPORT_ID,FLAG = '0',REMARK from CODE_REPORT

要插如的内容是:

2014年      | 330000 | no1 | 0 | 1
2014年1季度 | 330000 | no2 | 0 | 2
2014年01月  | 330000 | no3 | 0 | 3

现在 REPORTING_PROGRESS 这张表里面已经有
2014年      | 330000 | no1 | 1 | 1
这条记录,求指教怎么 剔除插入内容中的这条相似记录而保证插入成功啊

------解决方案--------------------
INSERT INTO 
 REPORTING_PROGRESS(LEDGERS_DATE,DEPT_ID,REPORT_ID ,FLAG,REMARK) 
SELECT
 case report_type when '1' then '2014年'
                  when '2' then '2014年1季度' 
                  when '3' then '2014年01月' 
                  end as LEDGERS_DATE,
                  DEPT_ID = '330000',ID as REPORT_ID,FLAG = '0',
                  REMARK 
from 
  CODE_REPORT T
Where 
  not exists(select 1 from REPORTING_PROGRESS where LEDGERS_DATE=t.LEDGERS_DATE and DEPT_ID=t.DEPT_ID and  REPORT_ID=t.REPORT_ID)