Я использую SQL Server 2008.
Я пытаюсь выполнить базовую математику в некоторых базовых запросах.Мне нужно сложить выигрыши, проигрыши, итоги и проценты.Я обычно спрашиваю необработанные числа и затем делаю вычисления, как только я возвращаю свой запрос на страницу.Я хотел бы дать SQL Server возможность работать немного усерднее.
Я хочу сделать что-то вроде этого:
SELECT SUM(case when vote = 1 then 1 else 0 end) as TotalWins,
SUM(case when vote = 0 then 1 else 0 end) as TotalLosses,
TotalWins + TotalLosses as TotalPlays,
TotalPlays / TotalWins as PctWins
Вот что я делаю сейчас:
SELECT SUM(case when vote = 1 then 1 else 0 end) as TotalWins,
SUM(case when vote = 0 then 1 else 0 end) as TotalLosses,
SUM(case when vote = 1 then 1 else 0 end) + SUM(case when vote = 0 then 1 else 0 end) as Votes
Какой самый простой и чистый способ выполнения простых математических вычислений, подобных этому, в запросе?
* РЕДАКТИРОВАТЬ: *
Хотя я получил некоторыеотличные ответы, я не получил то, что искал.
Оценки, которые я буду рассчитывать, относятся к конкретной команде, поэтому мои результаты должны быть такими:
TeamID Team Wins Losses Totals
1 A's 5 3 8
2 Bee's 7 9 16
3 Seas 1 3 4
SELECT T.TeamID,
T.Team,
V.TotalWins,
V.TotalLosses,
V.PctWins
FROM Teams T
JOIN
SELECT V.TeamID,
SUM(case when vote = 1 then 1 else 0 end) as V.TotWin,
SUM(case when vote = 0 then 1 else 0 end) as V.TotLoss
FROM Votes V
GROUP BY V.TeamID
Я перепробовал несколько вещей, но не совсемзнаю что не так.Я уверен, что часть JOIN - это проблема.Как мне объединить эти два набора результатов?