sql konusunda yardım lütfen

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
atlasbm
Üye
Mesajlar: 27
Kayıt: 25 Ağu 2003 12:52

sql konusunda yardım lütfen

Mesaj gönderen atlasbm »

arkadaşlar selamlar
her ne kadar araştırsamda kafayı da çizsem doğru yolu bulamadım. benim sorum şöyle
elimde bir paradox dosyam var ve bu dosyaya yaptığım kayıtlarda benim için önemli olan 4 alanım var ve bana öyle bir sorgu lazım ki veritabanımdaki bu 4 eşit alana sahip kayıtların gruplanması lazım.şöyleki eğer bu dört alan birbirini tutuyorsa başka bir dosyamdaki miktar alanım 1 artacak. umarım anlatabilmişimdir.yardımlarınız için şimdiden teşekkürler.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Malesef soruyu yeterince detaylandırmadığınız için ben de ancak ortalama bir cevap verebilecegim....
Baska tablodaki 1 arttırılacak alana karsilik bu tablonuzda 4 alanı da eşit olan ya tek kayıt olabiliyor ya da hiç kayıt olmuyorsa aşağıdaki kod işinizi goruru. Yok eğer birden çok kayıt oluşabiliyorsa miktar hanesini kayıt sayısı kadar arttiracaği için işi görmeyebilir.... Ya da ihtiyaç zaten buysa gorur ??? Bilemiyorum artık :)

Kod: Tümünü seç

update BASKA_TABLO 
set MIKTAR=MIKTAR + ( 
Select count(*) from BU_TABLO where ALAN1=ALAN2 and ALAN2=ALAN3 and ALAN3=ALAN4 and BASKA_TABLO.PRIMARY_ALANIM=BU_TABLO.PRIMARY_ALANIM)
)
Kolay gelsin.....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
atlasbm
Üye
Mesajlar: 27
Kayıt: 25 Ağu 2003 12:52

hocam selamlar

Mesaj gönderen atlasbm »

hata bende sanırım sorunumu tam olarak yazamamışım
şimdi elimde bir satışlar dosyam olsun
bu dosyamdaki kayıtlar
1-cinsi=muz 2-tipi = cikita 3-miktar=5
----------------------------------------------------------------------------
2-cinsi=muz 2-tipi =anamur 3-miktar=3
----------------------------------------------------------------------------
3-cinsi=muz 2-tipi = cikita 3-miktar=8
----------------------------------------------------------------------------

şimdi yapmak istediğim

raporumda
1-cinsi=muz 2-tipi =cikita 3-miktar=13
2-cinsi=muz 2-tipi =anamur 3-miktar = 3

gibi bir rapor almak istiyorum.
şimdiye kadar formu kaydederken bu dosyama bu alanları param olarak belirleyip eğer recordcount u 0 ise yeni bir kayıt oluşturup direk tüm bilgileri yazıdırıyorum,eğer recordcount <>0 ise bu sefer edit e geçip sadece miktar alanını bir artırıyorum. ama program genelinde aynı dosya defalarca açıldığından ve paramlar devamlı değiştiğinden dosyayı tekrar tekrar açmam gerekiyor.sql e yeni param lar belirlemem gerekiyor ve dolayısıyla da programı oldukça yavaşlatıyor. sorunum bu hocam bunu en kısa kodlarla nasıl yapabilirim. dosyaya ilk kayıtdamı bu kontrölü yaptırmak yoksa bi dosyaya tüm kayıtları kayıt edip rapor alınacağı zaman geçici bi dosyada mı gruplamak(ve eğer rapor alırken gruplamak ise ilgili sorgunun mantığı).Yardımlarınız için şimdiden çok teşekkürler.iyi çalışmalar.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Bu dediğiniz ilkinden çok farlı. Yani ortada bir güncelleme işlemi yok. Sadece bir rapor almaksa...
group by kullanımına klasik bir misal olarak şöyle yapabilirsiniz...

Kod: Tümünü seç

Select cinsi, tipi, toplam_miktar=sum(miktar)
from TABLO
group by cinsi, tipi
order by cinsi,tipi
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
atlasbm
Üye
Mesajlar: 27
Kayıt: 25 Ağu 2003 12:52

Mesaj gönderen atlasbm »

hocam çok teşekkürler yardımların için kod gerçekten işime yaradı.yardımlarınız için gerçekten çok teşekkürler.kolay gelsin
Cevapla