cift kayit sql
cift kayit sql
Merhaba arkadaslar;
d7 fb 2.1
soyle bir sorunum var ;
master detail olan 2 tablom var
fakat bazı kayıtları çift gösteriyor.
ibquery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.add('select GENELDETAIL1.GENELDETAILID AS KAYIT_NO,GENELDETAIL1.SIPNO AS SIP_NO');
IBQuery1.SQL.add(',GENELDETAIL1.MUSTERIADI AS MUS_ADI');
IBQuery1.SQL.add(',GENELDETAIL1.PARCAADI AS PARCA_ADI,GENELDETAIL1.PARCANO AS PARCA_NO,GENELDETAIL1.MFKSTR AS MFK,METOD1.MFKSONUC');
IBQuery1.SQL.add('FROM GENELDETAIL1 INNER JOIN METOD1 ON GENELDETAIL1.GENELDETAILID=METOD1.GENELDETAILID AND GENELDETAIL1.MFKSTR='' VAR"');
//IBQuery1.SQL.add('FROM GENELDETAIL1,METOD1 WHERE GENELDETAIL1.GENELDETAILID=METOD1.GENELDETAILID AND GENELDETAIL1.MFKSTR='' VAR"');
//bu satirda ayni sonucu veriyor
ibquery1.open;
yapmak istedigim su mfk adlı islemi(var/yok) olanları alacaK.fakat bazı kayıtları çift atıyor.bir cok yontem denedim ama sonuc aynı
yanlısı nerde yapıyorum acaba?
tskler.
d7 fb 2.1
soyle bir sorunum var ;
master detail olan 2 tablom var
fakat bazı kayıtları çift gösteriyor.
ibquery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.add('select GENELDETAIL1.GENELDETAILID AS KAYIT_NO,GENELDETAIL1.SIPNO AS SIP_NO');
IBQuery1.SQL.add(',GENELDETAIL1.MUSTERIADI AS MUS_ADI');
IBQuery1.SQL.add(',GENELDETAIL1.PARCAADI AS PARCA_ADI,GENELDETAIL1.PARCANO AS PARCA_NO,GENELDETAIL1.MFKSTR AS MFK,METOD1.MFKSONUC');
IBQuery1.SQL.add('FROM GENELDETAIL1 INNER JOIN METOD1 ON GENELDETAIL1.GENELDETAILID=METOD1.GENELDETAILID AND GENELDETAIL1.MFKSTR='' VAR"');
//IBQuery1.SQL.add('FROM GENELDETAIL1,METOD1 WHERE GENELDETAIL1.GENELDETAILID=METOD1.GENELDETAILID AND GENELDETAIL1.MFKSTR='' VAR"');
//bu satirda ayni sonucu veriyor
ibquery1.open;
yapmak istedigim su mfk adlı islemi(var/yok) olanları alacaK.fakat bazı kayıtları çift atıyor.bir cok yontem denedim ama sonuc aynı
yanlısı nerde yapıyorum acaba?
tskler.
Garibanus
Re: cift kayit sql
s.a.
kodlarınızı code tagı içerisinde yazarsanız daha okunaklı olur. netekim bana karışık geldi ve bakmadım.
birde oluşturduğunuz sql komutunu ayrı bir memoda vs. gösterirseniz daha okunaklı olur. bazen gözden kaçan şeyler olabiliyor.
birde kayıtlarınızı kontrol edin. belkide gerçektende çift kayıtlar var.
kolay gelsin.
kodlarınızı code tagı içerisinde yazarsanız daha okunaklı olur. netekim bana karışık geldi ve bakmadım.
birde oluşturduğunuz sql komutunu ayrı bir memoda vs. gösterirseniz daha okunaklı olur. bazen gözden kaçan şeyler olabiliyor.
birde kayıtlarınızı kontrol edin. belkide gerçektende çift kayıtlar var.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Re: cift kayit sql
hocam tskler fakat kayit tek tabloda fakat bazi kayitlari cift gosteriyor.
kısacası kod soyle;
veya bunuda kullansam sonuc aynı yinecift olarak listeliyor kayıtların bazılarını
tskler.
kısacası kod soyle;
Kod: Tümünü seç
ibquery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.add('select GENELDETAIL1.GENELDETAILID AS KAYIT_NO,GENELDETAIL1.SIPNO AS SIP_NOGENELDETAIL1.MUSTERIADI AS MUS_ADI'');
IBQuery1.SQL.add(',GENELDETAIL1.PARCAADI AS PARCA_ADI,GENELDETAIL1.PARCANO AS PARCA_NO,GENELDETAIL1.MFKSTR AS MFK,METOD1.MFKSONUC');
IBQuery1.SQL.add('FROM GENELDETAIL1,METOD1 WHERE GENELDETAIL1.GENELDETAILID=METOD1.GENELDETAILID AND GENELDETAIL1.MFKSTR='' VAR"');
ibquery1.open;
veya bunuda kullansam sonuc aynı yinecift olarak listeliyor kayıtların bazılarını
Kod: Tümünü seç
IBQuery1.SQL.add('FROM GENELDETAIL1 INNER JOIN METOD1 ON GENELDETAIL1.GENELDETAILID=METOD1.GENELDETAILID AND GENELDETAIL1.MFKSTR='' VAR"');
tskler.
Garibanus
Re: cift kayit sql
s.a.
distinc kullanabilirsiniz sanırım.
yada inner join yerine left inner join i denemelisiniz.
örnek kayıt ları ve çıktılarıda verseniz ona göre kodda belki bir düzenleme yapılabilir.
kolay gelsin.
distinc kullanabilirsiniz sanırım.
yada inner join yerine left inner join i denemelisiniz.
örnek kayıt ları ve çıktılarıda verseniz ona göre kodda belki bir düzenleme yapılabilir.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Re: cift kayit sql
valla hocam distinct i denemistim olmadi join lerin tumunu kullandım yine ayni.
tskler.
tskler.
Garibanus
Re: cift kayit sql
s.a.
o zaman metod1 tablonda geneldetailid si aynı olan kayıtlar var demektir.
onu kontrol et istersen. birde yukardaki where ifadesi ile bütün alanları çek. hangi alanların farklı olduğunu görürsen problemi çözmek kolay olur.
eğer tüm alanlar aynı gelirse distinc in bu işi çözmesi lazım.
kolay gelsin.
o zaman metod1 tablonda geneldetailid si aynı olan kayıtlar var demektir.
onu kontrol et istersen. birde yukardaki where ifadesi ile bütün alanları çek. hangi alanların farklı olduğunu görürsen problemi çözmek kolay olur.
eğer tüm alanlar aynı gelirse distinc in bu işi çözmesi lazım.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Re: cift kayit sql
Sorgulama yaptığın iki tablonun tam yapısını (primary key, foreign key'ler dahil) bildirir misin?
İki tabloyu birleştirirken tüm key alanları ile eşleştirmezsen beklediğinden fazla kayıt dönebilir. Daha doğrusu eşleştirdiğin alanlara ait ekstra kayıt sayısı kadar fazladan kayıt döner.
Sorunun bununla ilgili olabilir.
İki tabloyu birleştirirken tüm key alanları ile eşleştirmezsen beklediğinden fazla kayıt dönebilir. Daha doğrusu eşleştirdiğin alanlara ait ekstra kayıt sayısı kadar fazladan kayıt döner.
Sorunun bununla ilgili olabilir.
Re: cift kayit sql
a.s
hocam oyle tuhaf bi sey ki
ornegin 163 numaralı kayıt aynı diyelim .sorguladimmi sadece 163 u (yani kayit numarasindan 163 u cektigimde )2 kayıt gorunuyor.Fakat gidip kayda baktigimda tek 163 var orda
gelde cik isin icinden .
tskler.
hocam oyle tuhaf bi sey ki
ornegin 163 numaralı kayıt aynı diyelim .sorguladimmi sadece 163 u (yani kayit numarasindan 163 u cektigimde )2 kayıt gorunuyor.Fakat gidip kayda baktigimda tek 163 var orda
gelde cik isin icinden .
tskler.
Garibanus
Re: cift kayit sql
PK veya FK ile alakası olduğunu sanmıyorum.
Joinlerde problem var gibi.
bu kod daki AND GENELDETAIL1.MFKSTR='' VAR"' ne demek onu da anlamadım.
Where nerede burda veya Join olunacak diğer alan..
Şöle olmasın?
Joinlerde problem var gibi.
Kod: Tümünü seç
IBQuery1.SQL.add('FROM GENELDETAIL1 INNER JOIN METOD1 ON GENELDETAIL1.GENELDETAILID=METOD1.GENELDETAILID AND GENELDETAIL1.MFKSTR='' VAR"');
Where nerede burda veya Join olunacak diğer alan..



Şöle olmasın?
Kod: Tümünü seç
IBQuery1.SQL.add('FROM GENELDETAIL1 INNER JOIN METOD1 ON GENELDETAIL1.GENELDETAILID=METOD1.GENELDETAILID) where GENELDETAIL1.MFKSTR='' VAR"');
Bir kelimenin anlamını öğretsen bile yeter..



Re: cift kayit sql
PK ve FK'yı join işlemini doğru yapıp yapmadığını tespit için sormuştum. Zira inner join'de PK veya FK örtüşmezse fazla kayıt döndürebiliyor. Tahminim sorunu da bu.
Tabi bilgileri daha net paylaşırsa durum daha bir netleşir.
Tabi bilgileri daha net paylaşırsa durum daha bir netleşir.
Re: cift kayit sql
hocam cevaplariniz icin tskler
deneyecegim
hakan hocam evet bir cümleyi atlamısız where dediginiz gibi yazmayi unutmusum buraya.fakat sorun o degil
geneldetail1 pk geneldetailid
metod1 pk metodid fk geneldetailid
mfkstr=''var'' demek mfk si olanlar demek yani bu bir islem sistem bu sekilde anliyor bu islemin yapilip yapilmayacagini olup olmadigini bu urun uzerinde
tskler.
deneyecegim
hakan hocam evet bir cümleyi atlamısız where dediginiz gibi yazmayi unutmusum buraya.fakat sorun o degil
geneldetail1 pk geneldetailid
metod1 pk metodid fk geneldetailid
mfkstr=''var'' demek mfk si olanlar demek yani bu bir islem sistem bu sekilde anliyor bu islemin yapilip yapilmayacagini olup olmadigini bu urun uzerinde
tskler.
Garibanus