If - CASE
Publicado por Jaime (4 intervenciones) el 06/07/2007 11:07:15
Buenas, soy muy novato en esto, a ver si alguien pudiera echarme una mano.
Tengo hecha una consulta en Access cuyo código es el siguiente:
SELECT USU.USUNOM, USU.USUDES, cliente.ID_CLIENTE, cliente.descripcion, [NOVEDADES ESO].ISBN, [NOVEDADES ESO].descripcion, Sum(LINEAS.alumnos) AS USUARIOS, NIVEL.DescNivel AS NIVEL_LIBRO, NIVEL_1.DescNivel AS NIVEL_ARGOS, IIf([NOVEDADES ESO]![ID_NIVEL]=[LINEAS]![ID_NIVEL],"VERDADERO","FALSO") AS COINCIDENCIA
FROM ((((LINEAS INNER JOIN [NOVEDADES ESO] ON LINEAS.ID_ISBN = [NOVEDADES ESO].ID_ISBN) INNER JOIN cliente ON LINEAS.ID_CLIENTE = cliente.ID_CLIENTE) INNER JOIN USU ON cliente.agente = USU.USUNOM) INNER JOIN NIVEL ON [NOVEDADES ESO].ID_NIVEL = NIVEL.ID_NIVEL) INNER JOIN NIVEL AS NIVEL_1 ON LINEAS.ID_NIVEL = NIVEL_1.ID_NIVEL
WHERE (((LINEAS.Definitivo)=-1))
GROUP BY USU.USUNOM, USU.USUDES, cliente.ID_CLIENTE, cliente.descripcion, [NOVEDADES ESO].ISBN, [NOVEDADES ESO].descripcion, NIVEL.DescNivel, NIVEL_1.DescNivel, IIf([NOVEDADES ESO]![ID_NIVEL]=[LINEAS]![ID_NIVEL],"VERDADERO","FALSO");
Si os copiáis este código en la vista SQL de Access veréis que es una consulta muy sencillita (yo es que si no la veo gráficamente no me entero)
La parte que me interesa es la de la Condición: IIf([NOVEDADES ESO]![ID_NIVEL]=[LINEAS]![ID_NIVEL],"VERDADERO","FALSO") AS COINCIDENCIA
Según me han dicho, la Condición IIf de Access se puede hacer mediante CASE en SQL pero por más que lo intento, siempre me da error.
¿Cómo quedaría esta consulta en código SQL? (Lo único que necesito es saber cómo transformar el IIf del SELECT y el del WHERE, con el resto no tengo problemas)
Muchas gracias,
Jaime
Tengo hecha una consulta en Access cuyo código es el siguiente:
SELECT USU.USUNOM, USU.USUDES, cliente.ID_CLIENTE, cliente.descripcion, [NOVEDADES ESO].ISBN, [NOVEDADES ESO].descripcion, Sum(LINEAS.alumnos) AS USUARIOS, NIVEL.DescNivel AS NIVEL_LIBRO, NIVEL_1.DescNivel AS NIVEL_ARGOS, IIf([NOVEDADES ESO]![ID_NIVEL]=[LINEAS]![ID_NIVEL],"VERDADERO","FALSO") AS COINCIDENCIA
FROM ((((LINEAS INNER JOIN [NOVEDADES ESO] ON LINEAS.ID_ISBN = [NOVEDADES ESO].ID_ISBN) INNER JOIN cliente ON LINEAS.ID_CLIENTE = cliente.ID_CLIENTE) INNER JOIN USU ON cliente.agente = USU.USUNOM) INNER JOIN NIVEL ON [NOVEDADES ESO].ID_NIVEL = NIVEL.ID_NIVEL) INNER JOIN NIVEL AS NIVEL_1 ON LINEAS.ID_NIVEL = NIVEL_1.ID_NIVEL
WHERE (((LINEAS.Definitivo)=-1))
GROUP BY USU.USUNOM, USU.USUDES, cliente.ID_CLIENTE, cliente.descripcion, [NOVEDADES ESO].ISBN, [NOVEDADES ESO].descripcion, NIVEL.DescNivel, NIVEL_1.DescNivel, IIf([NOVEDADES ESO]![ID_NIVEL]=[LINEAS]![ID_NIVEL],"VERDADERO","FALSO");
Si os copiáis este código en la vista SQL de Access veréis que es una consulta muy sencillita (yo es que si no la veo gráficamente no me entero)
La parte que me interesa es la de la Condición: IIf([NOVEDADES ESO]![ID_NIVEL]=[LINEAS]![ID_NIVEL],"VERDADERO","FALSO") AS COINCIDENCIA
Según me han dicho, la Condición IIf de Access se puede hacer mediante CASE en SQL pero por más que lo intento, siempre me da error.
¿Cómo quedaría esta consulta en código SQL? (Lo único que necesito es saber cómo transformar el IIf del SELECT y el del WHERE, con el resto no tengo problemas)
Muchas gracias,
Jaime
Valora esta pregunta


0