Ayuda con IIF

17/02/2006 - 21:43 por Salvatore | Informe spam
Perdon por mi ignorancia estoy haciendo una consulta pero cuando utilizo el
IIF al hacer pa prueba logica me marca el siguiente error
Servidor: mensaje 170, nivel 15, estado 1, línea 3
Línea 3: sintaxis incorrecta cerca de '='.

la sentencia sql es mas o menoa asi

SELECT dbo.RepInvs.FciaID,
IIF(SUM(dbo.RepInvs.VtsTot) = 0, 0,
SUM(dbo.RepInvs.DifInvTot) / SUM(dbo.RepInvs.VtsTot) * 100) AS mermainv
From ...

por fav alguien echeme la mano de ante mano gracias
 

Leer las respuestas

#1 Alejandro Mesa
17/02/2006 - 21:56 | Informe spam
Salvatore,

Esa expression logica no existe en T-SQL. Debes usar la expresion "case".

case when SUM(dbo.RepInvs.VtsTot) = 0 then 0 else
SUM(dbo.RepInvs.DifInvTot) / SUM(dbo.RepInvs.VtsTot) * 100 end AS mermainv

Tambien puedes usar:

isnull(SUM(dbo.RepInvs.DifInvTot) / nullif(SUM(dbo.RepInvs.VtsTot), 0) *
100, 0) AS mermainv


AMB

"Salvatore" wrote:

Perdon por mi ignorancia estoy haciendo una consulta pero cuando utilizo el
IIF al hacer pa prueba logica me marca el siguiente error
Servidor: mensaje 170, nivel 15, estado 1, línea 3
Línea 3: sintaxis incorrecta cerca de '='.

la sentencia sql es mas o menoa asi

SELECT dbo.RepInvs.FciaID,
IIF(SUM(dbo.RepInvs.VtsTot) = 0, 0,
SUM(dbo.RepInvs.DifInvTot) / SUM(dbo.RepInvs.VtsTot) * 100) AS mermainv
From ...

por fav alguien echeme la mano de ante mano gracias

Preguntas similares