Sto utilizzando SQL Server 2008.Come eseguire l'aggiunta e la divisione di colonne con alias in una query?
Sto cercando di fare alcuni calcoli di base in alcune query di base. Ho bisogno di sommare vincite, perdite, totale e percentuali. Di solito chiedo i numeri grezzi e poi eseguo i calcoli una volta che rendo la mia query alla pagina. Vorrei dare a SQL Server l'opportunità di lavorare un po 'di più.
Quello che voglio fare è qualcosa di simile:
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
Ecco quello che sto facendo ora:
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
Qual è il modo più pulito più semplice per fare semplici calcoli matematici come questo in una domanda?
* EDIT: *
Mentre ho ottenuto alcuni grandi risposte, non ho ottenuto quello che cercavo.
I punteggi che sarò calcolo sono per una squadra specifica, così, i miei risultati devono essere come questo:
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
Ho provato un sacco di cose, ma non so bene cosa sbagliata. Sono sicuro che la parte JOIN è dove il problema è però. Come posso riunire questi due set di risultati?
Interessante! Gli darò un vortice. –
'+ 1' - Forse un CTE funzionerebbe bene anche tu? –
@MikeChristensen: Sì, funzionerebbe anche un CTE. –