У меня есть две таблицыSQL Server хранимая процедура расчета неправильно среднедушевой состояния
Funddetails
:
FundId Fund Industry State Column1
-----------------------------------------
1 1 2 NSW
2 1 2 ACT
3 1 2 VIC
4 1 2 NSW
5 1 2 ACT
6 1 2 VIC
7 1 2 NSW
8 1 2 ACT
9 1 2 VIC
Industrydetail
:
IndustryId price State
-----------------------
1 12 NSW
2 1 Vic
3 3 ACT
Это, как я обновить столбец 1
UPDATE FundDetails
SET Column1 = CASE
WHEN (funddetails.Industry * Industrydetails.price -
(select Avg(funddetails.Industry * Industrydetails.price) OVER (partition BY Industrydetails.state)) <= -5
THEN '50'
ELSE '100'
END
FROM FundDetails
INNER JOIN Industrydetails ON FundDetails.State = Industrydetails.State
Но средний расчет дает неправильный результат.
funddetails.Industry*Industrydetails.price
и (select Avg(funddetails.Industry*Industrydetails.price) OVER (partition BY Industrydetails.state))
дают то же результаты.
Есть ли другой способ получить
average(funddetails.Industry * Industrydetails.price)
за состояние и обновлять колонку
FWIW: AVG (INT) -> INT. – user2864740
Извините, что это такое –
Как плохого расчета? – ZLK