aynı tabloda gelen değere göre sorgulama

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

aynı tabloda gelen değere göre sorgulama

Mesaj gönderen sarp_halit »

Merhaba arkadaşlar.

iyi forumlar herkese...

Bir tablom var ve yapısı şu şekilde:
brKEY int ve anahtar
brmADI varchar
brmUSTBIRIM int
brmISBASLIK Char
brmACIKLAMA text

sorun şu: sorguyu çalıştırdığım zaman eğer brmUSTBIRIM değeri varsa yeni bir değişkene brmADI alanının değerini atayacak.
bunu Stored Procedure ya da Function olarak denedim ama olmadı. SQL içinde ifade ile denedim yine döndüremedim.

Bu konuda bana yardımıc olabilir misiniz lütfen?

teşekkür ederim ...
Fethiye den herkese sevgiler ...
X))@:>
bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 10:32
Konum: istanbul

Re: aynı tabloda gelen değere göre sorgulama

Mesaj gönderen bgoktas »

Sorgudan birden fazlamı satır dönecek yoksa sadece tek satırmı?
-eğer tek satır dönecekse case...when ile yapabilirsin

Kod: Tümünü seç

Select Case (brmUstbirim = null) or (brmUstbirim=0) then 'değeryok' else brmadi end as Sonuc From Tablonunadi Where sartınız.... 
-eğer birden fazla satır döneceksede sorunda eksiklikler olabilir ama yine case...when le bir sonuç kümesi elde edip, bu sonuçtan tekrar özet başka sonuçlar üretebilirsin...

Kolay Gelsin.
Kullanıcı avatarı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

Re: aynı tabloda gelen değere göre sorgulama

Mesaj gönderen sarp_halit »

when case bloğunu daha önce kullandım ama sorgu birden fazla sonuç döndürdüğünden dolayı sıkıntı yaşıyorum. benim istediğim bütün kayıtları görmek ama brmUSTBIRIM değer null değilse o değer hangi kaydın brKEY ine eşitse onun brmADINI alıp USTBIRIM alanına ekleme yapacak.
Fethiye den herkese sevgiler ...
X))@:>
bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 10:32
Konum: istanbul

Re: aynı tabloda gelen değere göre sorgulama

Mesaj gönderen bgoktas »

Örnek bir tablo ve örnek bir sonuç kümesi oluşturup yazarmısın, tam olarak anlayamadım.
Kullanıcı avatarı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

Re: aynı tabloda gelen değere göre sorgulama

Mesaj gönderen sarp_halit »

Tablo yapım aşağıdaki gibi

Kod: Tümünü seç

CREATE TABLE dbo.tblBIRIMLISTE (
  brKEY        int IDENTITY(1, 1),
  brmADI       varchar(50),
  brmUSTBIRIM  smallint,
  brmISBASLIK  char,
  brmACIKLAMA  text,
  /* Keys */
  PRIMARY KEY (brKEY), 
  CONSTRAINT brmADI UNIQUE (brmADI)
)
GO
Resim
yapmak istediğim şeyi resimde anlatmaya çalıştım. kısaca açıklmak gerekirse:

brmUSTBIRIM değeri 0 dan farklı olursa ya da NULL değilse gelen değeri brKEY alanından bulacak ve bulduğu değere ait brmADI alanındaki değeri alıp USTBIRIM olarak gösterecek. fonksiyon ya da procedure da olabilir. bunu asp.net ile geliştirdiğim bir sitede kullanmak istiyorum ve tek sorguda çalıştırmak istiyorum.
Fethiye den herkese sevgiler ...
X))@:>
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: aynı tabloda gelen değere göre sorgulama

Mesaj gönderen aslangeri »

s.a.
fazla karışık düşünme basit bir join sorgusu ile halledebilirsin.

Kod: Tümünü seç

select a.brKEY, a.brmADI, a.brmUSTBIRIM ,a.brmISBASLIK, a.brmACIKLAMA,
b.brmADI as brmUSTBIRIMADI
from tblBIRIMLISTE a
left join tblBIRIMLISTE b on a.brmUSTBIRIM=b.brKEY
[/code
böyle bir sorgu ile halledebilirsin.
artık bunu procedure demi kullanırsun fonksiyondamı kullanırsın sen karar ver.
kolay gelsin.
Not: sintaksda hata olabilir.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

Re: aynı tabloda gelen değere göre sorgulama

Mesaj gönderen sarp_halit »

allah senden razı olsun ne diyeyim. çok teşekkür ederim.
Fethiye den herkese sevgiler ...
X))@:>
Cevapla