Ich habe zwei TabellenSQL Server gespeicherte Prozedur wird ein falsches Mittel pro Zustand Berechnung
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
Dies ist, wie ich Spalte am Aktualisierung 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
Aber die durchschnittliche Berechnung gibt ein falsches Ergebnis.
funddetails.Industry*Industrydetails.price
und (select Avg(funddetails.Industry*Industrydetails.price) OVER (partition BY Industrydetails.state))
sind die gleichen Ergebnisse.
Gibt es eine andere Möglichkeit, die
average(funddetails.Industry * Industrydetails.price)
pro Zustand und aktualisieren Sie die Spalte
FWIW: AVG (INT) -> INT. – user2864740
Entschuldigung, was ist das? –
Wie ist die Durchschnittsberechnung falsch? – ZLK