Bonjour,

Je souhaiterai updater un champ type datetime d'une table avec une requête SQL

En gros je souhaite partir de la date d'écriture pour recalculer la date d'échéance en appliquant les conditions de règlement de la fiche client.

j'ai dans un premier temps rédiger une requête SELECT

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
SELECT
CASE RT_Condition WHEN 1 THEN EOMONTH (JM_DATE+RT_Nbjour+EC_Jour-1) ELSE (JM_DATE+RT_Nbjour+EC_Jour-1) END AS ECHEANCE
FROM F_ECRITUREC RIGHT OUTER JOIN F_REGLEMENTT
ON F_REGLEMENTT.CT_NUM =F_ECRITUREC.CT_NUM
WHERE Jo_NUM is not NULL
j'ai obtenu le résultat escompté.
2018-05-18 00:00:00.000
2018-06-30 00:00:00.000
2018-06-30 00:00:00.000
2018-06-30 00:00:00.000
2018-06-30 00:00:00.000
2018-06-30 00:00:00.000
2018-06-30 00:00:00.000
2018-06-30 00:00:00.000
2018-06-30 00:00:00.000
2018-06-30 00:00:00.000
2018-06-30 00:00:00.000
2018-06-30 00:00:00.000


j'ai donc voulu faire un update de mon champ échéance avec ce select

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
UPDATE [dbo].[F_ECRITUREC]
   SET F_ECRITUREC.N_Reglement = (SELECT
CASE RT_Condition WHEN 1 THEN EOMONTH (JM_DATE+RT_Nbjour+EC_Jour-1) ELSE (JM_DATE+RT_Nbjour+EC_Jour-1) END AS ECHEANCE
FROM F_ECRITUREC RIGHT OUTER JOIN F_REGLEMENTT
ON F_REGLEMENTT.CT_NUM =F_ECRITUREC.CT_NUM
WHERE Jo_NUM is not NULL)
 
GO
voici le message d'erreur que j'obtient
Msg*257, Niveau*16, État*3, Ligne*17
Implicit conversion from data type datetime to smallint is not allowed. Use the CONVERT function to run this query.

j'ai bien compris qu'il faut convertir resultat de ma sous-requete en DATETIME mais je ne sais pas où mettre la ligne de commande.

Pouvez-vous m'aider?

Merci d'avance