birden fazla kayıtı teke düşürmek

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
serbek_tr
Üye
Mesajlar: 362
Kayıt: 16 Ağu 2004 12:54

birden fazla kayıtı teke düşürmek

Mesaj gönderen serbek_tr »

Hayırlı Çalışmalar;

Arkadaşlar çözemedim yardım rica ediyorum.

Kod: Tümünü seç

SELECT 
  TBL_BASKI.ID,
  TBL_BASKI.MUSTERIID,
  TBL_BASKI.PARTINO,
  TBL_BASKI.DESENADI,
  TBL_BASKI.KUMASID,
  TBL_BASKI.KUMASCINSI,
  TBL_BASKI.BASKICINSI,
  TBL_BASKI.MIKTAR,
  TBL_BASKI.RENKSAYISI,
  TBL_BASKI.PROGRAMTARIHI,
  TBL_BASKI.REFERANS,
  TBL_BASKI.VARYANT,
  TBL_BASKI.NOTLAR,
  TBL_BASKI.PROSES,
  TBL_BASKI.SIPARISTARIHI,
  TBL_BASKI.GIRISTARIHI,
  TBL_BASKI.GIRISSAATI,
  TBL_BASKI.CIKISTARIHI,
  TBL_BASKI.CIKISSAATI,
  TBL_BASKI.SIRA,
  TBL_BASKI.PROSESID,
  TBL_BASKI.DESENID,
  TBL_BASKI.BASKIMAKINAID,
  TBL_BASKI.DURUM,
  TBL_BASKI.METRAJ,
  TBL_BOYA_PRG.PARTI_NO,
  TBL_BOYA_PRG.ID
FROM
  TBL_BASKI
  LEFT OUTER JOIN TBL_BOYA_PRG ON (TBL_BASKI.PARTINO = TBL_BOYA_PRG.PARTI_NO)
Yukarıdaki kod istediğimi veriyor zaten yukarda karmaşık bir durumda yok sadece baskı tablosunda bir kaydın parti numarası boya programında da varsa o kayıtı da alıyorum ancak boya programında aynı parti numarasına ait birden fazla kayıt olabiliyor dolayısı ile baskı programının bir kayıtı karşılığında boya programından birden fazla kayıt gelebiliyor. ancak gelen kayıtların id numaraları kesinlikle farklıdır ve ben boya programından gelen bilginin sadece ID numarası en büyük olanın alınmasını istiyorum ben aşağıdaki kodu uyguladım ancak bu defada hiç bilgi gelmedi

Kod: Tümünü seç

SELECT 
  TBL_BASKI.ID,
  TBL_BASKI.MUSTERIID,
  TBL_BASKI.PARTINO,
  TBL_BASKI.DESENADI,
  TBL_BASKI.KUMASID,
  TBL_BASKI.KUMASCINSI,
  TBL_BASKI.BASKICINSI,
  TBL_BASKI.MIKTAR,
  TBL_BASKI.RENKSAYISI,
  TBL_BASKI.PROGRAMTARIHI,
  TBL_BASKI.REFERANS,
  TBL_BASKI.VARYANT,
  TBL_BASKI.NOTLAR,
  TBL_BASKI.PROSES,
  TBL_BASKI.SIPARISTARIHI,
  TBL_BASKI.GIRISTARIHI,
  TBL_BASKI.GIRISSAATI,
  TBL_BASKI.CIKISTARIHI,
  TBL_BASKI.CIKISSAATI,
  TBL_BASKI.SIRA,
  TBL_BASKI.PROSESID,
  TBL_BASKI.DESENID,
  TBL_BASKI.BASKIMAKINAID,
  TBL_BASKI.DURUM,
  TBL_BASKI.METRAJ,
  TBL_BOYA_PRG.PARTI_NO,
  MAX(TBL_BOYA_PRG.ID) AS FIELD_1
FROM
  TBL_BASKI
  LEFT OUTER JOIN TBL_BOYA_PRG ON (TBL_BASKI.PARTINO = TBL_BOYA_PRG.PARTI_NO)
GROUP BY
  TBL_BASKI.ID,
  TBL_BASKI.MUSTERIID,
  TBL_BASKI.PARTINO,
  TBL_BASKI.DESENADI,
  TBL_BASKI.KUMASID,
  TBL_BASKI.KUMASCINSI,
  TBL_BASKI.BASKICINSI,
  TBL_BASKI.MIKTAR,
  TBL_BASKI.RENKSAYISI,
  TBL_BASKI.PROGRAMTARIHI,
  TBL_BASKI.REFERANS,
  TBL_BASKI.VARYANT,
  TBL_BASKI.NOTLAR,
  TBL_BASKI.PROSES,
  TBL_BASKI.SIPARISTARIHI,
  TBL_BASKI.GIRISTARIHI,
  TBL_BASKI.GIRISSAATI,
  TBL_BASKI.CIKISTARIHI,
  TBL_BASKI.CIKISSAATI,
  TBL_BASKI.SIRA,
  TBL_BASKI.PROSESID,
  TBL_BASKI.DESENID,
  TBL_BASKI.BASKIMAKINAID,
  TBL_BASKI.DURUM,
  TBL_BASKI.METRAJ,
  TBL_BOYA_PRG.PARTI_NO
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
moonred
Üye
Mesajlar: 14
Kayıt: 05 Kas 2005 11:13
Konum: İstanbul
İletişim:

Mesaj gönderen moonred »

Sanırım aşağıdaki kod işini çözecektir...

Kod: Tümünü seç

SELECT 
  TBL_BASKI.ID, 
  TBL_BASKI.MUSTERIID, 
  TBL_BASKI.PARTINO, 
  TBL_BASKI.DESENADI, 
  TBL_BASKI.KUMASID, 
  TBL_BASKI.KUMASCINSI, 
  TBL_BASKI.BASKICINSI, 
  TBL_BASKI.MIKTAR, 
  TBL_BASKI.RENKSAYISI, 
  TBL_BASKI.PROGRAMTARIHI, 
  TBL_BASKI.REFERANS, 
  TBL_BASKI.VARYANT, 
  TBL_BASKI.NOTLAR, 
  TBL_BASKI.PROSES, 
  TBL_BASKI.SIPARISTARIHI, 
  TBL_BASKI.GIRISTARIHI, 
  TBL_BASKI.GIRISSAATI, 
  TBL_BASKI.CIKISTARIHI, 
  TBL_BASKI.CIKISSAATI, 
  TBL_BASKI.SIRA, 
  TBL_BASKI.PROSESID, 
  TBL_BASKI.DESENID, 
  TBL_BASKI.BASKIMAKINAID, 
  TBL_BASKI.DURUM, 
  TBL_BASKI.METRAJ, 
  TBL_BOYA_PRG.PARTI_NO,
FROM 
  TBL_BASKI 
  LEFT OUTER JOIN TBL_BOYA_PRG ON (TBL_BASKI.PARTINO = TBL_BOYA_PRG.PARTI_NO) 
  WHERE   TBL_BOYA_PRG.ID IN (SELECT   MAX(TBL_BOYA_PRG.ID) FROM TBL_BASKI)
GROUP BY 
  TBL_BASKI.ID, 
  TBL_BASKI.MUSTERIID, 
  TBL_BASKI.PARTINO, 
  TBL_BASKI.DESENADI, 
  TBL_BASKI.KUMASID, 
  TBL_BASKI.KUMASCINSI, 
  TBL_BASKI.BASKICINSI, 
  TBL_BASKI.MIKTAR, 
  TBL_BASKI.RENKSAYISI, 
  TBL_BASKI.PROGRAMTARIHI, 
  TBL_BASKI.REFERANS, 
  TBL_BASKI.VARYANT, 
  TBL_BASKI.NOTLAR, 
  TBL_BASKI.PROSES, 
  TBL_BASKI.SIPARISTARIHI, 
  TBL_BASKI.GIRISTARIHI, 
  TBL_BASKI.GIRISSAATI, 
  TBL_BASKI.CIKISTARIHI, 
  TBL_BASKI.CIKISSAATI, 
  TBL_BASKI.SIRA, 
  TBL_BASKI.PROSESID, 
  TBL_BASKI.DESENID, 
  TBL_BASKI.BASKIMAKINAID, 
  TBL_BASKI.DURUM, 
  TBL_BASKI.METRAJ, 
  TBL_BOYA_PRG.PARTI_NO
Kullanıcı avatarı
serbek_tr
Üye
Mesajlar: 362
Kayıt: 16 Ağu 2004 12:54

Mesaj gönderen serbek_tr »

İlgiye teşekkür ederim ancak işe yaramadı kod hatası verdi gerçi ama onuda (SELECT MAX(TBL_BOYA_PRG.ID) FROM TBL_baski) değil (SELECT MAX(TBL_BOYA_PRG.ID) FROM TBL_BOYA_PRG) olarak düzelttim hata ortadan kalktı ancak benim denedğim kod gibi sonuç boş geldi
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
moonred
Üye
Mesajlar: 14
Kayıt: 05 Kas 2005 11:13
Konum: İstanbul
İletişim:

Mesaj gönderen moonred »

Bide bu şekilde dener misin?...

Kod: Tümünü seç

WHERE   TBL_BASKI.ID = (SELECT   MAX(TBL_BOYA_PRG.ID) FROM TBL_BASKI)
Bide burada JOIN ederken

Kod: Tümünü seç

LEFT OUTER JOIN TBL_BOYA_PRG ON (TBL_BASKI.PARTINO = TBL_BOYA_PRG.PARTI_NO) AND (TBL_BASKI.ID = TBL_BOYA_PRG.ID)
Olarak değiştirmen gerekmiyor mu?
En son moonred tarafından 14 Kas 2005 02:41 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
serbek_tr
Üye
Mesajlar: 362
Kayıt: 16 Ağu 2004 12:54

Mesaj gönderen serbek_tr »

Arakdaş Aslına bakarsan beni yanlış anladığını düşünüyorum çünkü yazdığın kod yani baştaki baskıid nin benim istediğim ile hiç ilgisi yok ben yukarıdakinden hariç şunu söyliyeyim yukarıyı tamamen unutalım


A Tablosunda
a1,a2,a3 field ları olsun
sırası ile 1.kayıtta a1:ahmet a2:yeşil a3:5 olsun
B tablosundada aynı şekilde
b1,b2,b3 olsun
sırası ile 1. kayıt b1:kırmızı b2:yeşil b3:1
2. kayıt b1:sarı b2:yeşil b3:2
3. kayıt b1:mavi b2:yeşi b3:3
4. kayıt b1:mor b2:kırmızı b3:4
olsun

diyoruzki a tablosunda ki tüm kayıtlar gelsin ama gelirkende b tablosundanda b2 alanı a tablosunun a2 alanı ile uyuşanlar gelsin

buraya kadar zaten benimde problemim yok ancak anlattıklaım dahilinde b tablosunda b2 bilgisi yeşil olan tüm kayıtlar geliyor yani sonuç
a tablosundaki bir kayıta karşılık b tablosundanda 3 sonuç geliyor


ama ben bu üç sonuç arasından sadece b3 alanı en büyük olanın gelmesini istiyorum. umarım anlatabildim ve daha fazla karıştırmadım.

işte bana bunu kodlarsan sevinirim
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
moonred
Üye
Mesajlar: 14
Kayıt: 05 Kas 2005 11:13
Konum: İstanbul
İletişim:

Mesaj gönderen moonred »

Kod: Tümünü seç

SELECT * FROM A
LEFT OUTER JOIN B ON B2=A2
WHERE B3 = (SELECT MAX(B3) FROM B LEFT OUTER JOIN A ON B2=A2 WHERE B2=A2)
Yazdığın örneğe göre sonuç dönüyor bu koddan...

İyi Çalışmalar.. Kolay Gelsin...

Kod: Tümünü seç

SELECT 
  TBL_BASKI.ID, 
  TBL_BASKI.MUSTERIID, 
  TBL_BASKI.PARTINO, 
  TBL_BASKI.DESENADI, 
  TBL_BASKI.KUMASID, 
  TBL_BASKI.KUMASCINSI, 
  TBL_BASKI.BASKICINSI, 
  TBL_BASKI.MIKTAR, 
  TBL_BASKI.RENKSAYISI, 
  TBL_BASKI.PROGRAMTARIHI, 
  TBL_BASKI.REFERANS, 
  TBL_BASKI.VARYANT, 
  TBL_BASKI.NOTLAR, 
  TBL_BASKI.PROSES, 
  TBL_BASKI.SIPARISTARIHI, 
  TBL_BASKI.GIRISTARIHI, 
  TBL_BASKI.GIRISSAATI, 
  TBL_BASKI.CIKISTARIHI, 
  TBL_BASKI.CIKISSAATI, 
  TBL_BASKI.SIRA, 
  TBL_BASKI.PROSESID, 
  TBL_BASKI.DESENID, 
  TBL_BASKI.BASKIMAKINAID, 
  TBL_BASKI.DURUM, 
  TBL_BASKI.METRAJ, 
  TBL_BOYA_PRG.PARTI_NO, 
FROM 
  TBL_BASKI 
  LEFT OUTER JOIN TBL_BOYA_PRG ON (TBL_BASKI.PARTINO = TBL_BOYA_PRG.PARTI_NO) 
  WHERE   TBL_BASKI.ID = (SELECT   MAX(TBL_BOYA_PRG.ID) FROM TBL_TBL_BOYA_PRG LEFT OUTER JOIN TBL_BASKI ON (TBL_BASKI.PARTINO = TBL_BOYA_PRG.PARTI_NO) WHERE  TBL_BASKI.PARTINO = TBL_BOYA_PRG.PARTI_NO ) 
GROUP BY 
  TBL_BASKI.ID, 
  TBL_BASKI.MUSTERIID, 
  TBL_BASKI.PARTINO, 
  TBL_BASKI.DESENADI, 
  TBL_BASKI.KUMASID, 
  TBL_BASKI.KUMASCINSI, 
  TBL_BASKI.BASKICINSI, 
  TBL_BASKI.MIKTAR, 
  TBL_BASKI.RENKSAYISI, 
  TBL_BASKI.PROGRAMTARIHI, 
  TBL_BASKI.REFERANS, 
  TBL_BASKI.VARYANT, 
  TBL_BASKI.NOTLAR, 
  TBL_BASKI.PROSES, 
  TBL_BASKI.SIPARISTARIHI, 
  TBL_BASKI.GIRISTARIHI, 
  TBL_BASKI.GIRISSAATI, 
  TBL_BASKI.CIKISTARIHI, 
  TBL_BASKI.CIKISSAATI, 
  TBL_BASKI.SIRA, 
  TBL_BASKI.PROSESID, 
  TBL_BASKI.DESENID, 
  TBL_BASKI.BASKIMAKINAID, 
  TBL_BASKI.DURUM, 
  TBL_BASKI.METRAJ, 
  TBL_BOYA_PRG.PARTI_NO
Kullanıcı avatarı
serbek_tr
Üye
Mesajlar: 362
Kayıt: 16 Ağu 2004 12:54

Mesaj gönderen serbek_tr »

baskı tablosundaki id ile boya tablosundaki id alanlarının bir biri ile ilişkisi yok onlar tamamen otomatik olarak artan index alanlar işin içine boya prgramındaki id dahil etmemin sebebi boya programından gelen birden fazla kayıttan id si en büyük olan son kayıt olduğu içindir

verdiğin kodu denedim ancak bu defa bana ters sonuç geldi
yani baskıdaki tüm kayıtların gelmesi gerekirken baskı ile boya tablosunun uyuştuğu ancak sadece boya programında karşılığı birden fazla olan baskıdaki tek kayıt geldi halbuki diğer kayıtlarında gelmesi gerekirdi
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Kullanıcı avatarı
serbek_tr
Üye
Mesajlar: 362
Kayıt: 16 Ağu 2004 12:54

Mesaj gönderen serbek_tr »

Kod: Tümünü seç

SELECT 
  TBL_BOYA_PRG.PARTI_NO,
  TBL_BOYA_PRG.DURUM,
  MAX(TBL_BOYA_PRG.ID) AS FIELD_1
FROM
  TBL_BOYA_PRG
WHERE
  (TBL_BOYA_PRG.PARTI_NO='A10031') 
GROUP BY
  TBL_BOYA_PRG.PARTI_NO,
  TBL_BOYA_PRG.DURUM
Şu yaukarıdaki kod parti numarası 'A10031' olan 3 kayıttan id si en büyük olanı veriyor yani 3 kayıt yerine bir kayıt geliyor

benim istediğim yakarıdaki kodu sonda bulunan koda adapte etmek
yani baskı tablosundaki her kayıt için boya tablosunda parti numarası uyuşan birden fazla kayıtı teke düşürmek

Baskı No Parti No BoyaId
Baskı1 A001 21
Baskı2 A002 35
Baskı2 A002 36
Baskı2 A002 37 */Sadece Bu kayıt gelsin
Baskı3 A003 55


Sonuç Yerine

Baskı No Parti No BoyaId
Baskı1 A001 21
Baskı2 A002 37
Baskı3 A003 55

Sonucu gelsin

Kod: Tümünü seç

SELECT 
  TBL_BASKI.ID, 
  TBL_BASKI.MUSTERIID, 
  TBL_BASKI.PARTINO, 
  TBL_BASKI.DESENADI, 
  TBL_BASKI.KUMASID, 
  TBL_BASKI.KUMASCINSI, 
  TBL_BASKI.BASKICINSI, 
  TBL_BASKI.MIKTAR, 
  TBL_BASKI.RENKSAYISI, 
  TBL_BASKI.PROGRAMTARIHI, 
  TBL_BASKI.REFERANS, 
  TBL_BASKI.VARYANT, 
  TBL_BASKI.NOTLAR, 
  TBL_BASKI.PROSES, 
  TBL_BASKI.SIPARISTARIHI, 
  TBL_BASKI.GIRISTARIHI, 
  TBL_BASKI.GIRISSAATI, 
  TBL_BASKI.CIKISTARIHI, 
  TBL_BASKI.CIKISSAATI, 
  TBL_BASKI.SIRA, 
  TBL_BASKI.PROSESID, 
  TBL_BASKI.DESENID, 
  TBL_BASKI.BASKIMAKINAID, 
  TBL_BASKI.DURUM, 
  TBL_BASKI.METRAJ, 
  TBL_BOYA_PRG.PARTI_NO, 
  TBL_BOYA_PRG.ID 
FROM 
  TBL_BASKI 
  LEFT OUTER JOIN TBL_BOYA_PRG ON (TBL_BASKI.PARTINO = TBL_BOYA_PRG.PARTI_NO)
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
moonred
Üye
Mesajlar: 14
Kayıt: 05 Kas 2005 11:13
Konum: İstanbul
İletişim:

Mesaj gönderen moonred »

Kod: Tümünü seç

SELECT 
  TBL_BASKI.ID, 
  TBL_BASKI.MUSTERIID, 
  TBL_BASKI.PARTINO, 
  TBL_BASKI.DESENADI, 
  TBL_BASKI.KUMASID, 
  TBL_BASKI.KUMASCINSI, 
  TBL_BASKI.BASKICINSI, 
  TBL_BASKI.MIKTAR, 
  TBL_BASKI.RENKSAYISI, 
  TBL_BASKI.PROGRAMTARIHI, 
  TBL_BASKI.REFERANS, 
  TBL_BASKI.VARYANT, 
  TBL_BASKI.NOTLAR, 
  TBL_BASKI.PROSES, 
  TBL_BASKI.SIPARISTARIHI, 
  TBL_BASKI.GIRISTARIHI, 
  TBL_BASKI.GIRISSAATI, 
  TBL_BASKI.CIKISTARIHI, 
  TBL_BASKI.CIKISSAATI, 
  TBL_BASKI.SIRA, 
  TBL_BASKI.PROSESID, 
  TBL_BASKI.DESENID, 
  TBL_BASKI.BASKIMAKINAID, 
  TBL_BASKI.DURUM, 
  TBL_BASKI.METRAJ, 
  TBL_BOYA_PRG.PARTI_NO,
  (SELECT   MAX(TBL_BOYA_PRG.ID) FROM TBL_TBL_BOYA_PRG LEFT OUTER JOIN TBL_BASKI ON (TBL_BASKI.PARTINO = TBL_BOYA_PRG.PARTI_NO) WHERE  TBL_BASKI.PARTINO = TBL_BOYA_PRG.PARTI_NO ) AS FIELD_1
FROM 
  TBL_BASKI 
  LEFT OUTER JOIN TBL_BOYA_PRG ON (TBL_BASKI.PARTINO = TBL_BOYA_PRG.PARTI_NO) 
GROUP BY 
  TBL_BASKI.ID, 
  TBL_BASKI.MUSTERIID, 
  TBL_BASKI.PARTINO, 
  TBL_BASKI.DESENADI, 
  TBL_BASKI.KUMASID, 
  TBL_BASKI.KUMASCINSI, 
  TBL_BASKI.BASKICINSI, 
  TBL_BASKI.MIKTAR, 
  TBL_BASKI.RENKSAYISI, 
  TBL_BASKI.PROGRAMTARIHI, 
  TBL_BASKI.REFERANS, 
  TBL_BASKI.VARYANT, 
  TBL_BASKI.NOTLAR, 
  TBL_BASKI.PROSES, 
  TBL_BASKI.SIPARISTARIHI, 
  TBL_BASKI.GIRISTARIHI, 
  TBL_BASKI.GIRISSAATI, 
  TBL_BASKI.CIKISTARIHI, 
  TBL_BASKI.CIKISSAATI, 
  TBL_BASKI.SIRA, 
  TBL_BASKI.PROSESID, 
  TBL_BASKI.DESENID, 
  TBL_BASKI.BASKIMAKINAID, 
  TBL_BASKI.DURUM, 
  TBL_BASKI.METRAJ, 
  TBL_BOYA_PRG.PARTI_NO
Bide böyle dener misin? Umarım şimdi olur...
Kullanıcı avatarı
serbek_tr
Üye
Mesajlar: 362
Kayıt: 16 Ağu 2004 12:54

Mesaj gönderen serbek_tr »

Arkadaş Zahmet verdim çok sağol oldu ve bende başka bir yol denedim oda oldu. İki tabloyu birbiri ile master detail çalışacak bir mantıkta bağladım işimi gördü. bu arada ayıp olmazsa bir yardım daha isteyeceğim aslına bakarsan senin yapmış olduğun, mantık icabı daha kalite birşey ancak senin yazdığın kodda benim uyguladığım yolda her ikiside çok ağır çalışıyor çünkü boya tablosuna her gün 100 den fazla kayıt işleniyor ve şu an mevcut kayıt sayısı 80000 küsür kayıt var artık gerisini sen düşün yaptığımız sorguda baskı tablosu ekrana 10 kayıt getirecekse herbiri için alt sorgu çalışacak ve 80 bin kayıt arasından istediğimizi getirecek bu sorguyu hızlandırmak için bir iyileştirme mümkünmüdür.

iyi çalışmalar, tekrar teşekkür ederim
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
radiochaos
Üye
Mesajlar: 17
Kayıt: 10 Kas 2005 05:15
Konum: Antalya
İletişim:

Mesaj gönderen radiochaos »

Selamlar,
sadece hatırlatmak istedim. LEFT JOIN ya da herhangi bir şekilde JOIN kullanıldığında, ON (....) ifadesindeki birleştirme alanlarının indexli olması çok performans kazandırır. O fieldların primary key ya da başka bir index in bir parçası olması değilde, sadece o field lar için bir index tanımlanmasını tavsiye ederim.
Örneğin
... ON (TableA.Field1=Table2.Field2) şeklinde ise Query, Field1 ve Field2 için ayrı index tanımlamak gerekir. (Table ların index durumunu bilmeden söylüyorum).
veya
ON (TableA.Field1=Table2.Field2) AND (TableA.Field3=Table2.Field4) şeklinde bir ifade varsa Field1+Field3 ten oluşan bir indexin TableA da tanımlı olması SQL serverların performansını çok artırır.

Kolay gelsin.
Kullanıcı avatarı
serbek_tr
Üye
Mesajlar: 362
Kayıt: 16 Ağu 2004 12:54

Mesaj gönderen serbek_tr »

Teşekkür ederim deneyeceğim umarım index sayısının artması tablonun genel performansını olumsuz etkilemez
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Şu SQL'i deneyiniz:

Kod: Tümünü seç

SELECT
  T1.ID,
  T1.MUSTERIID,
  T1.PARTINO,
  T1.DESENADI,
  T1.KUMASID,
  T1.KUMASCINSI,
  T1.BASKICINSI,
  T1.MIKTAR,
  T1.RENKSAYISI,
  T1.PROGRAMTARIHI,
  T1.REFERANS,
  T1.VARYANT,
  T1.NOTLAR,
  T1.PROSES,
  T1.SIPARISTARIHI,
  T1.GIRISTARIHI,
  T1.GIRISSAATI,
  T1.CIKISTARIHI,
  T1.CIKISSAATI,
  T1.SIRA,
  T1.PROSESID,
  T1.DESENID,
  T1.BASKIMAKINAID,
  T1.DURUM,
  T1.METRAJ,
  (SELECT MAX(T2.ID) FROM TBL_BOYA_PRG T2 WHERE T1.PARTINO = T2.PARTI_NO) AS TBL_BOYA_PRG_ID,
FROM TBL_BASKI T1
Kullanıcı avatarı
serbek_tr
Üye
Mesajlar: 362
Kayıt: 16 Ağu 2004 12:54

Mesaj gönderen serbek_tr »

Hakan Can ,
Süpersin Üstad Allah razı olsun senden ve yardımı dokunan dokunmayan tüm arkadaşlardan bu hem istediğimi verdi ve ayrıca hız problemide yok
çok teşekkür ederim
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Cevapla