boş alan sorgusu

Katılım
17 Ocak 2006
Mesajlar
241
Excel Vers. ve Dili
excel xp türkçe
select *
from Ziyaret_Tablo
where
aciklama IS NULL or
aciklama2 IS NULL or
aciklama3 IS NULL or
aciklama4 IS NULL and

persadisoyadi='müge derin'


merhaba

amacım o personele ait 4 açıklaması boş olanları getirsin 4 açıklamada doluysa getirmesin


mantığımı yukarıdaki sorguya göre tasarladım ama tüm personellere göre getiriyor.


yardımcı olurmusunuz?
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba


Açıklamalardan herhangi biri NULL ise ismi c olan verileri getir

select *
from Ziyaret_Tablo
where
WHERE (persadisoyadi='c')AND(ACIKLAMA1 IS NULL) OR (ACIKLAMA2 IS NULL)

Eğer


açıklamaların hepsi NULL ise verileri getirsin diyorsanız

select *
from Ziyaret_Tablo
where
WHERE (persadisoyadi='c')AND(ACIKLAMA1 IS NULL) AND (ACIKLAMA2 IS NULL)





Tablonuza baktınızmı değerler NULL mu boşta olabilir.
 
Son düzenleme:
Katılım
17 Ocak 2006
Mesajlar
241
Excel Vers. ve Dili
excel xp türkçe
bu şekilde de olmuyor

durum şöyle personelin doktorlarına 4 kere gitme şartı var.

3 kere gitse bile 1 kere daha gitmesi gerekiyor ve gidimesi gerekenler listesinde lması gerekiyor.

ama bu sorguda 4 ziyaretten birine gitse bile hepsine gidilmiş gibi listede göstermiyor. benimde takıldığım şey o zaten.
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba

Aşağıdaki gibi istemiyormusunuz

SOYADI, DOĞUM YILI,ÖDEME ve DÖNEMİ

ACK1,ACK2,ACK3,ACK4 gibi düşünün

 
Son düzenleme:
Katılım
17 Ocak 2006
Mesajlar
241
Excel Vers. ve Dili
excel xp türkçe
sizde sadece C C kayıtlı lduğu için o şekilde


görüntüyü ekranda gösteriyorum.

bence bu Or dan olabilirmi. şükrü personeli dediğim halde şükrü hariç diğer personeller geliyor. şürüyüde aciklama yazdıüım için göstermiyor. daha önceden gösteriyordu.
 

Ekli dosyalar

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba


Burada WHERE (persadisoyadi='c')AND(ACIKLAMA1 IS NULL) OR(ACIKLAMA2 IS NULL)

olduğunda Personel adı c olan ve açıklama1 NULL olan personelle
birlikte
Acıklama2'si NULL olan diğer bütün personeli getiriyor.

Küçük bir Views hazırlayabilir veya tablo üzerindende bakabilirsiniz.



Kendinize uyarlayabilirmisiniz.


Kod:
SELECT   *
FROM         DENEME1
WHERE     (ADI = 'c c') AND (DONEM IS NULL) OR
                      (ADI = 'c c') AND (ODEME IS NULL) OR
                      (ADI = 'c c') AND (DOGUM_YILI IS NULL) OR
                      (ADI = 'c c') AND (SOYADI IS NULL)
 
Son düzenleme:

Rafet

Altın Üye
Katılım
24 Mart 2005
Mesajlar
230
Excel Vers. ve Dili
Ofice 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
01-12-2025
Bu kodla bir tanesi bile boş olursa rapora alır.

Kod:
select *
from Ziyaret_Tablo
where
((CASE WHEN aciklama IS NULL THEN 'X' ELSE '1' END)
+(CASE WHEN aciklama2 IS NULL THEN 'X' ELSE '1' END)
+(CASE WHEN aciklama3 IS NULL THEN 'X' ELSE '1' END)
+(CASE WHEN aciklama4 IS NULL THEN 'X' ELSE '1' END)) LIKE '%X%'
AND 
persadisoyadi='müge derin'

Bu kodla LIEK tan sonra 3. karakter X olduğu için 3. yanı acıklama 3 alanı null ise rapora alır
"X" hangi kademede ise o acıklama boş ise gibi düşüne bilirsiniz.

Kod:
select *
from Ziyaret_Tablo
where
((CASE WHEN aciklama IS NULL THEN 'X' ELSE 'Y' END)
+(CASE WHEN aciklama2 IS NULL THEN 'X' ELSE 'Y' END)
+(CASE WHEN aciklama3 IS NULL THEN 'X' ELSE 'Y' END)
+(CASE WHEN aciklama4 IS NULL THEN 'X' ELSE 'Y' END)) LIKE '__X_'
AND 
persadisoyadi='müge derin'

Başka bir bakış acısı
NULL olan her acıklama alanı için "X" Karakteri atacak. "LEN" fonksiyo ile bu karakterlersi sayarsanız 0 kadarter olursa o zaman tüm alanlar doludur demektir. Rapor almassınız

Yada 3 IS NOT NULL Deyip karakter saydırısanız.
4 karakterliler tümüne gimiş
3 karakterlile 3 ünü gitmiş gibi....

Kod:
select *
from Ziyaret_Tablo
where
LEN(
(CASE WHEN aciklama IS NULL THEN 'X' ELSE '' END)
+(CASE WHEN aciklama2 IS NULL THEN 'X' ELSE '' END)
+(CASE WHEN aciklama3 IS NULL THEN 'X' ELSE '' END)
+(CASE WHEN aciklama4 IS NULL THEN 'X' ELSE '' END))
) <> '0'
AND 
persadisoyadi='müge derin'
Saygılar.
 
Üst