Voilà ce que j'aimerais faire :
IF ( SELECT d.correctionStatus FROM data d < 0 )
BEGIN
Mais la syntaxe après IF laisse à désirer ....
Quel est la solution pour écrire correctement ceci en Transac SQL
merci de votre aide
Voilà ce que j'aimerais faire :
IF ( SELECT d.correctionStatus FROM data d < 0 )
BEGIN
Mais la syntaxe après IF laisse à désirer ....
Quel est la solution pour écrire correctement ceci en Transac SQL
merci de votre aide
Il faut utiliser CASE WHEN qui est du SQL standard.
SELECT CASE d.correctionStatus FROM data d
WHEN <0
THEN
..
ELSE
...
J'obtiens encore une erreur![]()
envoie l'erreur que ca te genere.
Il faudrait un minimum lire la doc: msdn sql server: CASE WHEN
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT (CASE WHEN d.correctionStatus <0 THEN 1 ELSE 2 END) FROM data
Oui en effet, mais ça me pose toujours un problème de syntaxe
SELECT
(CASE
WHEN d.correctionStatus <0
THEN
INSERT INTO Delta_Transac_Delete (
CHARGE_CODE,
AMOUNT,
TAX_CODE,
TAX_AMOUNT,
TOTAL_AMOUNT,
CORRECTION_STATUS,
ORIGIN,
TAX_STATUS,
ISOLATED_INVOICE_ID,
STATUS_DELTA
)
SELECT *,'DELETED' FROM DATA
ELSE
INSERT INTO Delta_Transac_Delete (
TRANS_ID,
CREDITOR_ID,
DEBTOR_ID,
VENDOR_ID,
BUYER_ID,
TRANS_DATE,
RECORD_DATE,
LABEL,
CURRENCY,
DISPATCH_CODE1,
DISPATCH_CODE2,
DISPATCH_CODE3,
TRANSACTION_SET_ID,
BR_ROLE,
BR_TYPE,
OFFER_CODE,
SUBSCRIPTION_CODE,
CHARGE_CODE,
AMOUNT,
TAX_CODE,
TAX_AMOUNT,
TOTAL_AMOUNT,
CORRECTION_STATUS,
ORIGIN,
TAX_STATUS,
ISOLATED_INVOICE_ID,
STATUS_DELTA
)
SELECT *,'UPDATED' FROM deleted
END)
FROM DATA
Voici les erreurs que j'ai :
Msg 156, Level 15, State 1, Line 7
Incorrect syntax near the keyword 'INSERT'.
Msg 156, Level 15, State 1, Line 21
Incorrect syntax near the keyword 'ELSE'.
Msg 102, Level 15, State 1, Line 54
Incorrect syntax near ')'.
Partager