Ceci est mon script lorsque j'exécute cette erreur, je reçois cette erreur p> Erreur de débordement arithmétique Convertir le flotteur sur Type de données numérique. P>
blockQuote> J'ai essayé de changer null fort> à 0.00 strong> mais toujours idem p> / P>
Country City Density
Australia Melbourne 23.365
Australia Sydney 25.657
Australia Perth 12.374
Canada Toronto 27.748
Canada Montreal 22.559
3 Réponses :
Utilisez ce
UPDATE T1 SET CityAvg = (SELECT STDEV(ISNULL(Population , 0)) FROM #Temp T2 WHERE T2.Country = T1.Country) FROM #Temp T1 SELECT * FROM #Temp
Le code suivant fonctionne bien pour moi:
Cette affirmation: a em> pour attribuer un type à , jetez ceci au type que vous souhaitez: p> ou si vous souhaitez copier le même type: p> null code>. Avec aucune autre information, SQL Server l'attribue au type code> null code>. C'est probablement votre problème. Vous pouvez le voir dans le db violon . P> WITH toupdate AS (
SELECT t.*,
STDEV(Density) OVER (PARTITION BY city) as new_cityavg
FROM #temp t
)
UPDATE toupdate
SET CityAvg = new_cityavg;
Quel est le type de données code> densité code>?
Est-ce que votre
#temp code> créé via unddl distinct code> ou sur la volée en fonction de la sectiondans code>? Quel est le type de données du champ dans lequel vous essayez de stocker la valeur code> cityavg code>? Et si vous lancez explicitement votreCaysavg Code> Calcul, quelque chose comme:Cast (Cityavg comme décimal (38,5) Code>?