Jag vill ha en SQL-fråga där "aliasena" är dynamiska.
Min "grund-sql-fråga" ser ut så här:
SELECT FilmID,
Poang * ett_dynamiskt_varde AS varde
FROM Tabell
WHERE (Poang=4 OR Poang=5) AND (Anvandare='Kalle' OR Anvandare='Jakob' OR Anvandare='Peter' OR Anvandare='Pelle')
OBS! Det finns flera poster som har samma FilmID
Nu är det så att jag vill att ett_dynamiskt varde ska vara olika beroende på vad Anvandare innehåller. T.ex. om Anvandare='Peter' så ska ett värde multipliceras och om Anvandare='Kalle' så ska ett annat värde multipliceras.
Alltså något likt
(IF Anvandare='Kalle' THEN Poang * 0.345 AS varde), (IF Anvandare='Peter' THEN Poang * 2.55 AS varde)
Och om det går skulle jag gärna vilja att hela alltet grupperas så att det i slutändan bara finns en post per FilmID kvar och sorterat efter varde DESC.
select filmid,
poang * case anvandare
when 'LarsG' then 4711
when '@nders' then 42 end
FROM Tabell
WHERE Poang in(4,5)
AND Anvandare in ('LarsG','@nders')
När du säger att du vill ha en post per filmid hur vill du då behandla poang? Summering, genomsnitt, standardavvikelse eller vad?
select filmid,
sum(poang * case anvandare
when 'LarsG' then 4711
when '@nders' then 42 end) as score
FROM Tabell
WHERE Poang in(4,5)
AND Anvandare in ('LarsG','@nders')
group by filmid
order by score desc