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
j'ai obtenu le résultat escompté.
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
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
voici le message d'erreur que j'obtient
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
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
Partager