Comment faire, SÉLECTIONNEZ dans ce cas? [dupliquer]

0

La question

Comment créer un seul MSSQL requête SELECT dans ce cas:

  1. Nous avons 2 tables: les fruits et la date d'expiration
  2. L'objectif est de recevoir la table des fruits nombre a de l'information au sujet d'avoir la valeur NULL dans expirationDate colonne. Ces fruits qui n'ont pas de valeur NULL aurait des zéros dans cette colonne. Numéro 4 n'existe pas dans d'expiration de la table, de sorte qu'il aurait également des 0 dans les résultats, car il n'a pas la valeur NULL.

Tables

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

Vous ne pouvez pas obtenir facilement la date de péremption sur le format que vous voulez. Cependant, il n'a pas vraiment d'importance(?). Je suppose que vous voulez 1 ou 0 dans votre nouvelle table parce que vous voulez utiliser une instruction if pour vérifier si le fruit est mauvais ou pas. Vous pouvez résoudre ce problème facilement:

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

ou, vous pourriez même être en mesure de le faire

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

Note: je ne sais pas ce que les langages de programmation que vous utilisez. Mais dans la plupart d'entre eux: nul et 0 sont des FAUX.

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

Pour répondre à votre requête SQL question:

Vous avez déjà tout ce dont vous avez besoin à l' expiration de la table

SELECT fruit_number, expiration_date
FROM expiration;

J'espère que cette aide

2021-11-23 10:13:04

Merci pour votre réponse, mais cela ne fonctionnera pas. Tout d'abord, vous recevrez plusieurs fruits même les numéros e.g 1 a deux enregistrements. Et, deuxièmement, si les fruits nombre est NUL, qu'il ne faut pas montrer aux autres date d'expiration.
Grzegorz Kaczmarczyk

ah ok... je n'ai pas tout à fait attraper que de vous remettre en question. Ma pause de midi est plus maintenant, mais je vais jeter un oeil après le travail, si personne n'a résolu le problème encore :)
CodeAddict
0

Vous devez l'utiliser avec Case Condition. Mais d'avoir à changer de déclaration un peu:

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

Mon ami a trouvé la solution.

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

Bienvenue à Débordement de Pile. Code sans explication sont rarement utiles. Débordement de pile est à propos de l'apprentissage, ne fournissant pas les extraits à l'aveuglette, copier et coller. Merci d'éditer votre question et d'expliquer comment il répond à la question précise qui est posée. Voir Comment Répondre.
Sfili_81

Dans d'autres langues

Cette page est dans d'autres langues

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