Access - consulta Select case desde Visual Basic a Access

 
Vista:

consulta Select case desde Visual Basic a Access

Publicado por Omar (1 intervención) el 02/06/2006 15:58:09
Señores.

Alguien puede indicarme la sintaxis correcta para realizar una consulta select que incluya subconsultas con la clausula Selecet case when.

ej. tengo esta sentencia pero reclara error de sintaxis al correrla.
el error lo genera en los select case


select
Tabla1.campo1,
(select 'Tabla2.campot2' = case
when Tabla2.campot2 is null then ' Sin datos'
else Tabla3.Descripcion
end) as DesTabla3,
(select 'Tabla2.campot3' = case
when 'Tabla2.campot3 is null then 'Sin Datos'
else Tabla4.Descripcion
end) as DesTabla4,
Usuarios.Nombres,
Usuarios.Apellidos
From Tabla1, Tabla2, Tabla3, Tabla4 , Usuarios
where Tabla1.campo1 =Tabla2.campo1 and
Tabla2.campo2 = Tabla3.campo2 and
Tabla2.campo3 = Tabla4.campo3 and
Fondos.Usuario = Usuarios.Usuario





gracias por su ayuda desde ya.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Consulta SELECT con subconsultas y cláusula SELECT CASE WHEN

Publicado por Alejandro (4142 intervenciones) el 19/07/2023 17:35:33
Aquí tienes la sintaxis corregida para realizar una consulta SELECT que incluya subconsultas con la cláusula SELECT CASE WHEN:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
SELECT
    Tabla1.campo1,
    (SELECT
        CASE
            WHEN Tabla2.campot2 IS NULL THEN 'Sin datos'
            ELSE Tabla3.Descripcion
        END
     FROM Tabla2
     INNER JOIN Tabla3 ON Tabla2.campo2 = Tabla3.campo2
     WHERE Tabla2.campo1 = Tabla1.campo1) AS DesTabla3,
    (SELECT
        CASE
            WHEN Tabla2.campot3 IS NULL THEN 'Sin Datos'
            ELSE Tabla4.Descripcion
        END
     FROM Tabla2
     INNER JOIN Tabla4 ON Tabla2.campo3 = Tabla4.campo3
     WHERE Tabla2.campo1 = Tabla1.campo1) AS DesTabla4,
    Usuarios.Nombres,
    Usuarios.Apellidos
FROM
    (Tabla1
    INNER JOIN Tabla2 ON Tabla1.campo1 = Tabla2.campo1)
    INNER JOIN Usuarios ON Fondos.Usuario = Usuarios.Usuario

En esta consulta, se utilizan subconsultas para obtener los valores condicionales utilizando la cláusula SELECT CASE WHEN. Se utiliza la sintaxis correcta para las subconsultas, donde cada subconsulta se incluye entre paréntesis.

También se han realizado correcciones en las cláusulas JOIN, utilizando INNER JOIN para unir las tablas correctamente. Asegúrate de reemplazar "Fondos" en la última línea por la tabla correspondiente a la relación entre Usuarios y Tabla2.

Recuerda ajustar los nombres de las tablas y los campos a los nombres reales en tu base de datos.

Espero que esta corrección te ayude a resolver el problema de sintaxis en tu consulta SELECT. ¡Buena suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar