es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Devolver filas cuando dos condiciones sean verdaderas

La siguiente consulta funciona correctamente al devolver los datos esperados:

SELECT DISTINCT
    CONVERT(varchar, b.bookindt, 101) AS [fecha de registro],
    b.bookinno AS [número de registro],
    dbo.fn_getoffensedesc(o.offenseid, o.probviolation,
                          (select offense from trdcode61
                           where code61id = o.code61id), o.goc) AS descripciondelosdelitos,
    o.PrimaryOffense AS [delito principal],
    trd.l_d AS [delito l/d],
    p.firstname AS [nombre],
    p.lastname AS [apellido]
FROM
    tblpeople p
LEFT OUTER JOIN
    tbloffense o (NOLOCK) ON o.personid = p.personid
LEFT OUTER JOIN
    tblbookin b (NOLOCK) ON b.bookinid = o.bookinid
LEFT OUTER JOIN
    trdcode61 trd (NOLOCK) ON trd.code61id = o.code61id
WHERE
    dbo.fn_isinjailbybookinid(b.bookinid) = 1
    -- AND b.bookinno='21042173'
    AND (trd.l_d LIKE 'F%' OR trd.l_d LIKE 'M%')
ORDER BY
    p.lastname, p.firstname

Aquí se muestra una captura de pantalla de los resultados para un solo “número de registro” para que sea más claro:

enter image description here

Necesito ayuda con una consulta, donde se vea la columna de “Número de Registro” Y si la columna “Delito l/d” incluye un (trd.l_d like 'F%' AND trd.l_d like 'M%') entonces devuelva ese resultado de “Número de Registro”.

Cuando intento ejecutar con AND obtengo cero resultados.

Tengo “Número de Registro” con solo “F%” o solo “M%”.

Agradecería cualquier ayuda.

Atentamente,
jer

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para modificar la consulta e incluir la condición de verificar tanto la columna “Número de registro de entrada” como la columna “Ofensa l/d”, puede usar la siguiente consulta SQL:

    SELECT DISTINCT
        CONVERT(varchar, b.bookindt, 101) AS [fecha de registro de entrada],
        b.bookinno AS [número de registro de entrada],
        dbo.fn_getoffensedesc(o.offenseid, o.probviolation, (select offense from trdcode61 where code61id = o.code61id), o.goc) AS descripción de la ofensa,
        o.PrimaryOffense AS [Ofensa primaria],
        trd.l_d AS [ofensa l/d],
        p.firstname AS [nombre],
        p.lastname AS [apellido]
    FROM
        tblpeople p
    LEFT OUTER JOIN 
        tbloffense o (NOLOCK) ON o.personid = p.personid 
    LEFT OUTER JOIN 
        tblbookin b (NOLOCK) ON b.bookinid = o.bookinid 
    LEFT OUTER JOIN 
        trdcode61 trd (NOLOCK) ON trd.code61id = o.code61id 
    WHERE
        dbo.fn_isinjailbybookinid(b.bookinid) = 1 
        AND ((b.bookinno LIKE 'F%' AND trd.l_d LIKE 'F%') OR (b.bookinno LIKE 'M%' AND trd.l_d LIKE 'M%'))
    ORDER BY
        p.lastname, p.firstname 
    

    Aquí, hemos modificado la cláusula WHERE para incluir la condición de verificar tanto la columna “Número de registro de entrada” como la columna “Ofensa l/d” utilizando el operador AND. También hemos utilizado paréntesis para agrupar correctamente las condiciones.

    Esta nueva consulta sólo devolverá resultados donde la columna “Número de registro de entrada” comienza con ‘F’ y la columna “Ofensa l/d” también comienza con ‘F’, o donde la columna “Número de registro de entrada” comienza con ‘M’ y la columna “Ofensa l/d” también comienza con ‘M’.

    ¡Espero que esto ayude! Avísame si tienes más preguntas.

Comments are closed.