Jak dokonać WYBORU w tym przypadku? [duplikat]

0

Pytanie

Jak utworzyć jeden wniosek MSSQL SELECT w tym przypadku:

  1. Mamy 2 stołu: owoce i okres trwałości
  2. Celem jest, aby uzyskać tabelę, w której określona liczba owoców zawiera informacje na temat dostępności ZERA w kolumnie Data wygaśnięcia. Te owocowe liczby, które nie mają podstaw, będą mieć zera w tej kolumnie. Liczba 4 nie istnieje w tabeli wygaśnięcia, więc w wynikach będzie również 0, bo nie ma w nim NULL.

W tabeli

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

Nie można łatwo uzyskać datę ważności w wybranym przez ciebie formacie. Jednak w rzeczywistości to nie ma znaczenia(?). Myślę, że trzeba 1 lub 0, w swojej nowej tabeli, bo chcesz użyć instrukcji if, aby sprawdzić, złe owoce, czy nie. Możesz łatwo rozwiązać ten problem:

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

lub, możesz nawet być w stanie to zrobić

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

Uwaga: nie wiem, jakie języki programowania używasz. Ale w większości z nich: null, 0 są NIEPRAWDZIWE.

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

Aby odpowiedzieć na to pytanie zapytania SQL:

Masz już wszystko, czego potrzebujesz w tabeli upływem terminu ważności

SELECT fruit_number, expiration_date
FROM expiration;

Mam nadzieję, że to pomoże

2021-11-23 10:13:04

Dziękuję za odpowiedź, ale to nie zadziała. Przede wszystkim, otrzymasz kilka takich samych owocowych pokoi, na przykład, 1 ma dwa wpisy. I po drugie, jeśli pokój płodu ma wartość NULL, to on nie powinien pokazywać inną datę ważności.
Grzegorz Kaczmarczyk

no cóż... nie do końca zrozumiałem to z twojego pytania. Mój przerwy, teraz się skończył, ale sprawdzę po pracy, jeśli nikt jeszcze nie rozwiązałem problem :)
CodeAddict
0

Należy używać go z Case Stan. Ale trzeba trochę zmienić brzmienie:

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

Mój przyjaciel znalazł rozwiązanie.

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

Witamy na Stack Overflow. Kod bez żadnych wyjaśnień rzadko bywa przydatny. Przepełnienie stosu-to szkolenie, a nie dostarczanie fragmentów ślepego kopiowania i wklejania. Proszę edytować swoje pytanie i wyjaśnić, jak on odpowiada na konkretne zadane pytanie. Zobaczymy, jak odpowiedzieć.
Sfili_81

W innych językach

Ta strona jest w innych językach

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