edalco9
edalco9

Reputation: 41

How can I do this SQLite query?

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

Answers (1)

albe
albe

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

Related Questions