Bu durumda SEÇİM nasıl yapılır? [çoğaltmak]

0

Soru

Bu durumda tek bir MSSQL SEÇME sorgusu nasıl oluşturulur:

  1. 2 tablomuz var: meyveler ve son kullanma tarihi
  2. Amaç, belirli meyve numarasının expirationDate sütununda NULL olması hakkında bilgi içeren tabloyu almaktır. BOŞ olmayan meyve sayıları bu sütunda sıfırlara sahip olacaktır. Son kullanma tablosunda 4 sayısı mevcut değildir, bu nedenle sonuçlarda 0 olur, çünkü NULL değeri yoktur.

Tablolar

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

Son kullanma tarihini istediğiniz formatta kolayca elde edemezsiniz. Ancak, gerçekten önemli değil(?). Yeni tablonuzda 1 veya 0 istediğinizi varsayıyorum çünkü meyvenin kötü olup olmadığını kontrol etmek için bir if ifadesi kullanmak istiyorsunuz. Bunu kolayca çözebilirsiniz:

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

ya da, hatta yapmak mümkün olabilir

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

Not: Hangi programlama dillerini kullandığınızı bilmiyorum. Fakat çoğunda: null ve 0 yanlıştır.

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

SQL sorgusu sorunuzu yanıtlamak için:

Son kullanma tablosunda ihtiyacınız olan her şeye zaten sahipsiniz

SELECT fruit_number, expiration_date
FROM expiration;

Umarım bu yardımcı olur

2021-11-23 10:13:04

Cevabınız için teşekkürler, ama bu işe yaramaz. Her şeyden önce, birden fazla aynı meyve numarası alacaksınız, örneğin 1'in iki kaydı var. İkincisi, eğer meyve sayısı boşsa, diğer son kullanma tarihini göstermemelidir.
Grzegorz Kaczmarczyk

ah tamam... Bunu senin sorundan tam olarak anlamadım. Öğle tatilim şu an bitti ama işten sonra bir göz atacağım, eğer başka kimse sorunu çözmediyse :)
CodeAddict
0

Onunla kullanmak zorundasın. Case Koşul. Ama ifadeyi biraz değiştirmeliyim.:

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

Arkadaşım çözümü buldu.

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

Yığın Taşması'na Hoş geldiniz. Herhangi bir açıklama yapmadan kod nadiren yardımcı olur. Yığın Taşması, körü körüne kopyalayıp yapıştırmak için parçacıklar sağlamakla değil, öğrenmekle ilgilidir. Lütfen sorunuzu düzenleyin ve sorulan belirli soruyu nasıl yanıtladığını açıklayın. Nasıl Cevap Vereceğimize bakın.
Sfili_81

Diğer dillerde

Bu sayfa diğer dillerde

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