Sorgu içinde tümü veya kısmi nasıl olmalı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
denizfatihi
Üye
Mesajlar: 254
Kayıt: 16 Şub 2004 06:12
Konum: istanbul

Sorgu içinde tümü veya kısmi nasıl olmalı

Mesaj gönderen denizfatihi »

Merhaba,

Prosedure sorgusunu aşağıda ki gibi kullanıyorum ama dataların çoğalması ile ayrı ayrı yapmam gerekiyor, sorum şu

RadioGroup içinde Çalışan ve Tümü şeklinde iki grup olacak, çalışan kısmını sorgunun içine yer alan
P.CIKTAR boş ise Tümü kısmını ise boş veya dolu fark etmez şeklinde getirmek istiyorum sorgu kısmı nasıl olmalı,
normalde kullanılan sorgu aşağıdaki gibidir, veritabanı : Ms Sql

Kod: Tümünü seç

SELECT P.ADI+' '+ P.SOYADI AS ADISOYADI, P.SICIL, P.TCKIMLIK,
P.DOGUMTAR, P.ISEGIRTAR, P.CIKTAR, 
P.SOZBITTAR, P.FIRMA, F.FIRMA,P.GOREV, G.GOREV,P.BOLDEPARTMAN, 
D.DEPARTMAN,P.BIRAMIRI, M.MUDUR , P.CINSIYET, P.DOGUMYERI,  P.NUFKAYOYER,
P.EMAIL, P.ADRES 
FROM PERSONEL P
LEFT JOIN MUDUR M ON (M.ID = P.BIRAMIRI)
LEFT JOIN DEPARTMAN D ON (D.ID = P.BOLDEPARTMAN)
LEFT JOIN FIRMA F ON (F.ID = P.FIRMA)
LEFT JOIN GOREV G ON (G.ID = P.GOREV)
WHERE P.ADI+' '+ P.SOYADI LIKE '%'+ @ADISOYADI + '%'     
ORDER BY 1
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2357
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Sorgu içinde tümü veya kısmi nasıl olmalı

Mesaj gönderen freeman35 »

where (P.CIKTAR IS null or P.CIKTAR='')
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
denizfatihi
Üye
Mesajlar: 254
Kayıt: 16 Şub 2004 06:12
Konum: istanbul

Re: Sorgu içinde tümü veya kısmi nasıl olmalı

Mesaj gönderen denizfatihi »

sayın freeman35 peki bunu tek bir sorgu içinde radiogroup içinde nasıl parametre olarak gönderebilirim.

Kod: Tümünü seç

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
     case RadioGroup1.ItemIndex of
     0:begin
     Pro_Personel.Close;
     Pro_Personel.parameters.parambyname('@ADISOYADI').value:= Edit1.Text ;
     Pro_Personel.parameters.parambyname('@CIKTAR').value:= Edit2.Text ;
     Pro_Personel.Open;
     end;

     1: begin
     Pro_Personel.Close;
     Pro_Personel.parameters.parambyname('@ADISOYADI').value:= Edit1.Text ;
     Pro_Personel.parameters.parambyname('@CIKTAR').value:= Edit3.Text ;
     Pro_Personel.Open;

end;
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Sorgu içinde tümü veya kısmi nasıl olmalı

Mesaj gönderen adelphiforumz »

biraz değiştirirsen işini görür

Kod: Tümünü seç

    Declare @Tarih DateTime = DateAdd(dd,0,DateDiff(dd,0,GetDate() -20))
    yada
    Declare @Tarih DateTime = 0
    
    Select * From Satis 
     Where DateAdd(dd,0,DateDiff(dd,0,IslemZamani)) >= Case When @Tarih = 0 Then 0 Else @Tarih End 
       And DateAdd(dd,0,DateDiff(dd,0,IslemZamani)) <= Case When @Tarih = 0 Then DateAdd(dd,0,DateDiff(dd,0,GetDate())) Else @Tarih End
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
denizfatihi
Üye
Mesajlar: 254
Kayıt: 16 Şub 2004 06:12
Konum: istanbul

Re: Sorgu içinde tümü veya kısmi nasıl olmalı

Mesaj gönderen denizfatihi »

sayın adelphiforumz biraz daha sorguyu anlatabilir misiniz ?
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2357
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Sorgu içinde tümü veya kısmi nasıl olmalı

Mesaj gönderen freeman35 »

denizfatihi yazdı:...radiogroup içinde ...
değil, seçilene göre yada şartına göre daha doğru cümle olur.
sql string i bu şarta göre oluşturabilirsin.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Sorgu içinde tümü veya kısmi nasıl olmalı

Mesaj gönderen aslangeri »

s.a.
Ben genelde sorgu içerisinde tüm kayıtları getir anlamına gelebilecek bir parametre ekliyorum.

Kod: Tümünü seç

WHERE P.ADI+' '+ P.SOYADI LIKE '%'+ @ADISOYADI + '%'     
AND
(
(p.CIKTAR is null and @CIKISKONTROL=1) OR
(@CIKISKONTROL=0)
)
Çıkışkontrol parametresine "1" değerini gönderdiğimde çalışanlar "0" değerini gönderdiğinde bütün kayıtlar gelir.
Not: P.CIKTAR boş ise nin kontrolünü veri tabanında tuttuğun alanın tipine ve değerine göre değiştirmen gerekebilir.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
denizfatihi
Üye
Mesajlar: 254
Kayıt: 16 Şub 2004 06:12
Konum: istanbul

Re: Sorgu içinde tümü veya kısmi nasıl olmalı

Mesaj gönderen denizfatihi »

Merhaba,

sayın aslangeri çok teşekkür ederim, tam istediğim gibi oldu, çok sağ olun.

Kod: Tümünü seç

ALTER PROCEDURE [dbo].[ADISOYADIA]

@ADISOYADI VARCHAR(50) = NULL,
@CIKISKONTROL int 

AS
BEGIN
SELECT P.ADI+' '+ P.SOYADI AS ADISOYADI, P.ID, P.SICIL,  P.PID, P.KID, P.TCKIMLIK, P.ADI, P.SOYADI,
P.DOGUMTAR, P.ISEGIRTAR, P.CIKTAR, P.TRASTAR, P.BASINKARTI, P.BASSIGTAR,
P.BASKARTNO, P.SOZBITTAR, P.IL,I.IL ,P.FIRMA, F.FIRMA,P.GOREV, G.GOREV,P.BOLDEPARTMAN, F.LOGO,
D.DEPARTMAN,P.BIRAMIRI, M.MUDUR , P.CINSIYET, P.DOGUMYERI, IL.ILLERI, P.NUFKAYOYER,ILI.ILLERI,
P.RESIM,P.CEPTEL, P.EMAIL,  P.ADRES , P.KAN,  
ILI.NID,ILI.ILLERI, YEAR(P.DOGUMTAR)AS DOGUMTAR, 
P.CILTNO

FROM PERSONEL P
LEFT JOIN MUDUR M ON (M.ID = P.BIRAMIRI)
LEFT JOIN DEPARTMAN D ON (D.ID = P.BOLDEPARTMAN)
LEFT JOIN FIRMA F ON (F.ID = P.FIRMA)
LEFT JOIN GOREV G ON (G.ID = P.GOREV)
LEFT JOIN IL I ON (I.ID = P.IL)
LEFT JOIN KAN K ON (K.ID = P.KAN)
LEFT JOIN CINSIYET C ON (C.ID = P.CINSIYET)
LEFT JOIN ILLER IL ON (IL.NID = P.DOGUMYERI)
LEFT JOIN ILLER ILI ON (ILI.NID = P.NUFKAYOYER)
WHERE ((P.CIKTAR is null and @CIKISKONTROL=0) OR (@CIKISKONTROL=1)) AND
P.ADI+' '+ P.SOYADI LIKE '%'+ @ADISOYADI + '%' 
ORDER BY 1
Cevapla