Reputation: 41
While I have more experience with MySQL, i'm fairly new to SQLite and apparently there is no support in it's syntax for IF() statements, so I was wondering, how can I do this query which works great in MySQL, but in SQLite?
SELECT auth_user.email,
Sum(IF((brasil2014_partidosfifa.Local = brasil2014_partidosusuarios.Local AND brasil2014_partidosfifa.Visita = brasil2014_partidosusuarios.Visita),2,0) + IF(brasil2014_partidosfifa.Resultado = brasil2014_partidosusuarios.Resultado,1,0)) AS puntos
FROM brasil2014_partidosfifa
INNER JOIN brasil2014_partidosusuarios ON brasil2014_partidosfifa.id = brasil2014_partidosusuarios.id
INNER JOIN auth_user ON brasil2014_partidosusuarios.idUsuario_id = auth_user.id
WHERE auth_user.id LIKE '%' AND brasil2014_partidosfifa.Jugado = 'Si'
GROUP BY auth_user.email
ORDER BY puntos DESC
Thanks!
Upvotes: 0
Views: 43
Reputation: 551
try a case expression. Instead of
Sum(IF((brasil2014_partidosfifa.Local = brasil2014_partidosusuarios.Local AND
brasil2014_partidosfifa.Visita = brasil2014_partidosusuarios.Visita),2,0) +
IF( brasil2014_partidosfifa.Resultado = brasil2014_partidosusuarios.Resultado,1,0))
AS puntos
use:
CASE
WHEN ( ... your first IF ... ) THEN 2 ELSE 0
END +
CASE
WHEN ( ... your second IF ... ) THEN 1 ELSE 0
END
AS puntos
Upvotes: 1