Cómo hacer que SELECCIONE en este caso? [duplicar]

0

Pregunta

Cómo crear un único MSSQL consulta de selección en este caso:

  1. Tenemos 2 tablas: frutas y caducidad
  2. El objetivo es recibir de la tabla donde se específica el número de frutos tiene información sobre la necesidad de NULL en expirationDate columna. Los frutos de los números que no han NULL habría ceros en la columna. Número 4 no existe en la caducidad de la tabla, por lo que también tienen 0 en los resultados, porque no tiene el valor NULL.

Tablas

sql-server
2021-11-23 09:44:47
3
0

Usted no puede obtener fácilmente la fecha de caducidad indicada en el formato que usted desee. Sin embargo, realmente no importa(?). Supongo que usted quiere 1 o 0 en su nueva tabla porque desea utilizar una instrucción if para comprobar si el fruto es malo o no. Se pueden resolver fácilmente:

if(expirationDate == null){/*something*/} 

o, usted podría incluso ser capaz de hacer

if(expirationDate) //this is all fruit that is not bad
else{/*your code to deal with expirated fruit here*/}

Nota: no sé qué lenguajes de programación que está utilizando. Pero en la mayoría de ellos: null y 0 son FALSAS.

if(null) // false
if(0) //false
if(undefined) //false, in javascript
//everything that is not a false value, is true.
if("oiaehgtaoiwgneawg") //true
if(-1) //true

Para responder a su consulta SQL pregunta:

Ya tienes todo lo que necesitas en la caducidad de la tabla

SELECT fruit_number, expiration_date
FROM expiration;

Espero que esto ayude

2021-11-23 10:13:04

Gracias por tu respuesta, pero esto no funciona. Primero de todo, usted recibirá múltiples de la misma fruta números de correo.g 1 tiene dos registros. Y en segundo lugar, si el número de frutos ha NULO, que no debería mostrar a los otros la fecha de caducidad.
Grzegorz Kaczmarczyk

ah bueno... yo no acababa de coger que de usted pregunta. Mi hora de almuerzo es más, ahora mismo, pero voy a echar un vistazo después del trabajo, si nadie ha solucionado el problema aún :)
CodeAddict
0

Usted tiene que usar con Case Condición. Pero tiene que cambiar la declaración de un poco de:

select fruit_number, --distinct(fruit_number),
x =case expiration_date
when NULL then null
else 0
end
2021-11-23 10:07:49
0

Mi amigo encontró la solución.

SELECT
    fruit_number, 
    MAX(expirationDate) as expirationDate
FROM
    (SELECT
        f.fruit_number,
        CASE
            WHEN e.expiration_date is NULL AND e.fruit_number IS NOT NULL THEN 1
            ELSE 0
            END AS expirationDate
    FROM
        expiration as e
        FULL OUTER JOIN fruits as f ON f.fruit_number = e.fruit_number
    WHERE
        f.fruit_number IS NOT NULL
    ) t
GROUP BY
    fruit_number
ORDER BY
    fruit_number
2021-11-23 10:23:25

Bienvenido a Desbordamiento de Pila. Código sin ningún tipo de explicación son poco útiles. Desbordamiento de la pila es sobre el aprendizaje, la no presentación de fragmentos ciegamente a copiar y pegar. Por favor, edita tu pregunta y explicar cómo se responde a la pregunta específica que se pide. Vea Cómo Responder.
Sfili_81

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................