Bonjour,
Je fais souvent des interventions chez un client pour réparer un batch SQL que j'avais repris par une collègue, je l'avais également retouché suite à une demande d'évolution, depuis, j'ai très régulièrement l'erreur de dépassement arithmétique où je multiplie 2 champs de type smallint .
Exemple de requête qui ne fonctionne pas tout le temps :
Je voulais savoir s'il y aurait des précautions à prendre pour faire passer les champs qte_canard et NB_REPAS de smallint à int, sans avoir à retoucher aux données déjà enregistrées en base.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 declare @DateDebut varchar(20)='31/07/2017' declare @DateFin varchar(20)='05/11/2017' select round(sum(qte_canard * NB_REPAS)*1.0/56181,2) from LOTS_DECOUPE as LOT inner join TRACABILITE as TRAC on trac.ID_TRACABILITE=lot.ID_TRACABILITE and CONVERT(date, jour_g) between CONVERT(date, @DateDebut) and CONVERT(date, @DateFin) and TRAC.CODE_TRACABILITE not like '%XXX%' and LEN(TRAC.CODE_TRACABILITE)=13 and CODE_TRACABILITE <> '0000000000000'
Merci
Partager