Bonjour voici une requête qui insert les enregistrements de la table GCACHAT_DET vers la table ENTREES_STOCKS. Ma problématique est que je souhaite insert uniquement les enregistrements de GCACHAT_DET qui ne sont pas déjà présents dans ENTREES_STOCKS.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
declare @dateJour datetime,@datedeb datetime
set @dateJour = '28/02/2020'
set @datedeb = DATEADD(DAY,1,@dateJour)
 
insert into ENTREES_STOCKS(ART_CODE,ENTSTK_DTENTREE,ENTSTK_LOT,ENTSTK_PNET,ENTSTK_NBU,ENT_STK_LOT_AKA)
select GCACHAT_DET.ACH_DATE_CREAT,left(GCACHAT_DET.ACH_TRACABILITE,CHARINDEX('.',GCACHAT_DET.ACH_TRACABILITE)-1),
GCARTICLE.ART_CODE,GCARTICLE.ART_LIB1,
GCACHAT_DET.ACH_PDS_NET_REC,GCACHAT_DET.ACH_COLIS_REC,GCACHAT_DET.ACH_LOT
from ERP_CRETS..AG1.GCACHAT_DET,ERP_CRETS..AG1.GCARTICLE
where GCACHAT_DET.ACH_ART_CODE = GCARTICLE.ART_CODE
and GCACHAT_DET.ACH_DATE_CREAT >= @dateJour and GCACHAT_DET.ACH_DATE_CREAT < @datedeb
and GCARTICLE.ART_STAT2 = '001'
and GCARTICLE.ART_LIB1 not like '%PORCELET%'
and GCACHAT_DET.ACH_PDS_NET_REC >0
and GCACHAT_DET.ACH_COLIS_REC >0
and GCACHAT_DET.ACH_DEPOT = '1'
 
--Insert uniquement les enregistrements qui n'existent pas déjà
 
where not exists
 
select ART_CODE,ENTSTK_DTENTREE,ENTSTK_LOT,ENTSTK_PNET,ENTSTK_NBU,ENT_STK_LOT_AKA
from ENTREES_STOCKS;
Comment dois-je modifier ce code pour cela fonctionne ?
Merci de votre aide.