sql ile or veya and kullanarak arama ama durum biraz farklı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
sql ile or veya and kullanarak arama ama durum biraz farklı
S.a. Arkadaşlar. Tablom şu şekilde
STOKADI GRUPKODU
A00-001 A1
A00-001 A2
A00-001 A3
A01-002 A1
A01-002 A2
A01-003 A1
A01-004 A2
Değerli Arkadaşlar. SELECT * FROM TABLO WHERE GRUP_KODU='A1' AND GRUP_KODU='A2' dediğim zaman sadece a1 ve a2 nin bulunduğu stokkodlarını getirmek istiyorum ama bilgiler aynı fieldda olduğu için sonuç alamıyorum or kullanırsamda bu sefer de bir sürü kayıt getiriyor a1 ve 2 olanların haricinde a1 leri ve a2 leride getiriyor. Tablomda çok büyük olduğu için bunu sql ile almam gerekiyor ama bir türlü yapamadım. yardımlarınızı bekliyorum. Teşekkürler
STOKADI GRUPKODU
A00-001 A1
A00-001 A2
A00-001 A3
A01-002 A1
A01-002 A2
A01-003 A1
A01-004 A2
Değerli Arkadaşlar. SELECT * FROM TABLO WHERE GRUP_KODU='A1' AND GRUP_KODU='A2' dediğim zaman sadece a1 ve a2 nin bulunduğu stokkodlarını getirmek istiyorum ama bilgiler aynı fieldda olduğu için sonuç alamıyorum or kullanırsamda bu sefer de bir sürü kayıt getiriyor a1 ve 2 olanların haricinde a1 leri ve a2 leride getiriyor. Tablomda çok büyük olduğu için bunu sql ile almam gerekiyor ama bir türlü yapamadım. yardımlarınızı bekliyorum. Teşekkürler
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
s.a. arkadaşlar problemimi hallettim. sql cümlesi aşağıda ihtiyacı olan arkadaşlar olabilir diyerekten yazıyorum. Fakat bir de şu durum var. Makaleler bölümünde dynamic sql filtre oluşturucu bi sınıf vardı ben bunu kullanmak istiyordum ama aşağıdaki gibi sql cümlesi söz konusu oluyor
benim oluşturacağım tüm sql kodları yukarıdaki mantık gibi hem in ile başlıyacak ve aynı stytnax da gidecek ve HAM_KODU değişecek sadece. Bu sınıfla ilgili bu işi yaptırabilmem için önerileriniz var mı...Yoksa hiç sınıfla uğraşmayıp manuel yapacağım. Şimdiden Teşekkürler
Kod: Tümünü seç
SELECT TOP 1 MAMUL_KODU FROM TBLSTOKURM
WHERE MAMUL_KODU IN (SELECT MAMUL_KODU FROM TBLSTOKURM WHERE HAM_KODU='BA22-01218-01')
AND MAMUL_KODU IN (SELECT MAMUL_KODU FROM TBLSTOKURM WHERE HAM_KODU='MF2216-0366-01')
Manual yap, yaparken de WHERE mi AND mi koyucam diye düşünmek yerine..
şeklinde kurgula ve her zaman AND ile ekleyip devam et...
- Ya da bunu rantable hale dönüştür, HAM_KODU IN ('BA22-01218-01', 'MF2216-0366-01' ) şeklinde uzatacak kadar tekil hale dönüştür.
Kod: Tümünü seç
SELECT TOP 1 MAMUL_KODU FROM TBLSTOKURM
WHERE 1=1
AND MAMUL_KODU IN (SELECT MAMUL_KODU FROM TBLSTOKURM WHERE HAM_KODU='BA22-01218-01')
AND MAMUL_KODU IN (SELECT MAMUL_KODU FROM TBLSTOKURM WHERE HAM_KODU='MF2216-0366-01')
AND .......
AND .......
- Ya da bunu rantable hale dönüştür, HAM_KODU IN ('BA22-01218-01', 'MF2216-0366-01' ) şeklinde uzatacak kadar tekil hale dönüştür.
Şimdi şu şekilde sonuç dönmüyor mu ?
- Eğer sadece bir değer dönüyor diyorsan, sorun TOP 1 demenden kaynaklı. Bu değerler varsa bulnanlardan sadece ilk bir tanesini getirir.
- Eğer amacın bu mamul kodlarından birer tane bulsun getirsin ise, O zaman TOP 1 demiycen, HAM_KODU'ları GROUP BY ile gruplucan ki tekil olarak birer birer gelsinler..
Kod: Tümünü seç
SELECT TOP 1 MAMUL_KODU FROM TBLSTOKURM
WHERE 1=1
AND MAMUL_KODU IN (SELECT MAMUL_KODU FROM TBLSTOKURM WHERE HAM_KODU IN ('BA22-01218-01', 'MF2216-0366-01') )
- Eğer amacın bu mamul kodlarından birer tane bulsun getirsin ise, O zaman TOP 1 demiycen, HAM_KODU'ları GROUP BY ile gruplucan ki tekil olarak birer birer gelsinler..
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Aklıma bir şey takıldı.sorgusuylasorgusu aynı sonuç kümesini üretmez mi?
Kod: Tümünü seç
SELECT MAMUL_KODU FROM TBLSTOKURM MAMUL_KODU IN (SELECT MAMUL_KODU FROM TBLSTOKURM WHERE HAM_KODU IN ('BA22-01218-01', 'MF2216-0366-01') )
Kod: Tümünü seç
SELECT MAMUL_KODU FROM TBLSTOKURM WHERE HAM_KODU IN ('BA22-01218-01', 'MF2216-0366-01')
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Hocam bir de şöyle dener misin ...
Kod: Tümünü seç
SELECT TOP 1 MAMUL_KODU FROM TBLSTOKURM WHERE HAM_KODU IN ('BA22-01218-01', 'MF2216-0366-01')
s.a. mrmarman ve sabah hocam...aşağıdaki kod ile ilgili şöyle bir sıkıntı doğması muhtemeldir. Aşağıdaki kod bu iki üründen birini içeren ilk mamülü vermekte. Yani dolayısıyla saban abimizin bu kodda vermezmi olayına bu kod vermez abi...Bunun yanına bir tane dana ürün ekleyin...3 olarak fark ortaya çıkacaktır. Doğru olan kod ikinci kod
Doğru Kod
Kod: Tümünü seç
SELECT TOP 1 MAMUL_KODU FROM TBLSTOKURM WHERE HAM_KODU IN ('BA22-01218-01', 'MF2216-0366-01')
Kod: Tümünü seç
SELECT TOP 1 MAMUL_KODU FROM TBLSTOKURM
WHERE MAMUL_KODU IN (SELECT MAMUL_KODU FROM TBLSTOKURM WHERE HAM_KODU='BA22-01218-01')
AND MAMUL_KODU IN (SELECT MAMUL_KODU FROM TBLSTOKURM WHERE HAM_KODU='MF2216-0366-01')
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Eğer sorgu içinde TOP 1 kullanmasaydın her iki sorgu da aynı işlemi gerçekleştirir ama işiniçinde TOP 1 olunca seçeceği kaydı kestirmek pek mümkün olmuyor. Buna her halde MS SQL Server yazılımcıları cevap verebilir.delphist yazdı:s.a. mrmarman ve sabah hocam...aşağıdaki kod ile ilgili şöyle bir sıkıntı doğması muhtemeldir. Aşağıdaki kod bu iki üründen birini içeren ilk mamülü vermekte. Yani dolayısıyla saban abimizin bu kodda vermezmi olayına bu kod vermez abi...Bunun yanına bir tane dana ürün ekleyin...3 olarak fark ortaya çıkacaktır. Doğru olan kod ikinci kod
Doğru KodKod: Tümünü seç
SELECT TOP 1 MAMUL_KODU FROM TBLSTOKURM WHERE HAM_KODU IN ('BA22-01218-01', 'MF2216-0366-01')
Kod: Tümünü seç
SELECT TOP 1 MAMUL_KODU FROM TBLSTOKURM WHERE MAMUL_KODU IN (SELECT MAMUL_KODU FROM TBLSTOKURM WHERE HAM_KODU='BA22-01218-01') AND MAMUL_KODU IN (SELECT MAMUL_KODU FROM TBLSTOKURM WHERE HAM_KODU='MF2216-0366-01')
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .