Jak, aby se VYBRAT v tomto případě? [duplicitní]

0

Otázka

Jak vytvořit jeden MSSQL SELECT dotazu v tomto případě:

  1. Máme 2 tabulky: ovoce a vypršení platnosti
  2. Cílem je, aby se zobrazí tabulka, kde konkrétní číslo, ovoce má informace o tom, že NULL v expirationDate sloupci. Těm, ovoce, čísla, které nemají hodnotu NULL by nul ve sloupci. Číslo 4, neexistuje v platnosti stolu, tak to by také mít 0 ve výsledcích, protože to nemá hodnotu NULL.

Tabulky

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

Můžete tak snadno získat datum vypršení platnosti na formát, který chcete. Nicméně, to není opravdu jedno(?). Předpokládám, že chceš 1 nebo 0 v nové tabulce, protože chcete použít, jestliže prohlášení, zkontrolovat, v případě, že ovoce je špatné, nebo ne. Můžete vyřešit jednoduše:

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

nebo, ty by mohly být dokonce schopen dělat

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

Poznámka: nevím, co programovací jazyky, které používáte. Ale ve většině z nich: null a 0, jsou NEPRAVDIVÉ.

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

K zodpovězení vašeho dotazu SQL dotaz:

Již máte vše, co potřebujete v platnosti stůl

SELECT fruit_number, expiration_date
FROM expiration;

Doufám, že to pomůže

2021-11-23 10:13:04

Díky za odpověď, ale to nebude fungovat. Za prvé, budete dostávat více stejného ovoce, čísla e.g 1 má dva záznamy. A za druhé, v případě, že ovoce má číslo NULA, než to neměl ukazovat na jiné datum vypršení platnosti.
Grzegorz Kaczmarczyk

ach jo... nějak jsem nezachytil, že z vás otázku. Oběd je více než právě teď, ale podívám se po práci, když nikdo jiný se vyřešil problém :)
CodeAddict
0

Budete muset použít s Case Stavu. Ale muset změnit prohlášení trochu:

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 přítel našel řešení.

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

Vítejte na Přetečení Zásobníku. Kód bez jakéhokoli vysvětlení jsou zřídka užitečné. Stack Overflow je o učení, ne poskytující snippets, aby slepě kopírovat a vložit. Prosím upravit na vaši otázku, a vysvětlit, jak odpovědi na konkrétní otázku se zeptal. Uvidíme , Jak na to Odpovědět.
Sfili_81

V jiných jazycích

Tato stránka je v jiných jazycích

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