J'utilise cette requête pour obtenir ma date moyenne:Comment puis-je obtenir une date moyenne pondérée appropriée dans SQL
CONVERT(DATETIME, AVG(CONVERT(FLOAT, ChargeOffDate))) as [Average C/O Date]
Ce qui me donne correctement la date '2003-08-12 14: 17: 22,103.
Lorsque j'utilise cette requête pour obtenir la date moyenne pondérée
CONVERT(DATETIME, SUM(CONVERT(FLOAT, ChargeOffDate) * FaceValue)/SUM(FaceValue))
Je reçois une date comme « 19/10/1938 21: 28: 48.000 » qui est loin de la date moyenne. J'ai l'impression que c'est une chose simple et qu'il me manque quelque chose de critique mais petit.
Exemple:
declare @temp table (value datetime, [weight] money)
insert into @temp values (NULL,8850.00)
insert into @temp values (NULL,137.91)
insert into @temp values ('2006-01-15',221.13)
insert into @temp values ('2006-10-15',127.40)
insert into @temp values ('2001-07-31',551.44)
insert into @temp values ('1997-10-12',4963.41)
insert into @temp values ('2006-03-15',130.36)
insert into @temp values ('2005-01-07',1306.31)
SELECT
CONVERT(DATETIME, AVG(CONVERT(FLOAT, value))) as [Avg Date],
CONVERT(DATETIME, SUM(CONVERT(FLOAT, value) * [weight])/SUM([weight])) as [Weighted Avg Date]
FROM @temp
Cela donne '2003-11-25 20: 00: 00.000' comme Average Date et '13/10/1944 10: 52: 10,573' comme une moyenne pondérée. Sans les null, il donne '1999-12-02 17: 10: 51.087'. Il est possible que mon problème soit que les zéros rejettent mes calculs.