sql de sutunların çarpımını nasıl yapabilirim?

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

aslında onaydın'in yukarıda verdiği kod oldukca sade bir kod: Hatta super bir kod diyebilirim... Daha iyisi olamazdı... Fakat bu tarz bir kombinasyon ile bu işin halledilebileceğine dair içimde bir umit vardi... :)

Kod: Tümünü seç

select convert(varchar,exp(sum(log(SAYI)))) from TABLO
Bunun uzerinden gidilebilir... Yani burada interbase'de olmayan log(Logaritma alma) ve exp (e sayisinin kuvvetini alma) fonksiyonu var. Bunlar interbase'de yok ama bunların hazır udf'leri mutlaka vardır diye düşünüyorum.. Eger firebird kullanıyrsanız belki onda bu fonksiyonlar olabilir... Bakmak lazım....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
baloglurecep
Üye
Mesajlar: 261
Kayıt: 21 Tem 2006 04:59
İletişim:

Re: sql de sutunların çarpımını nasıl yapabilirim?

Mesaj gönderen baloglurecep »

herkese selamlar... forumda ararken burda buldum. hatta sorduğum bir soruyu storedprocedurle yapmam noktasında tavsiye aldım bende onu araştırıyordum. Storedprocedurde döngü ve editleme nasıl yaparım.

delphiden yaptığım döngü ve edit şu şekilde :

Kod: Tümünü seç

dm.extre_query.First;
BAKIYE:=0;  // bakiye değişekni sıfırlanıyor
  WHILE NOT(dm.extre_query.EOF) DO   // döngü yapıyor
    begin
    BAKIYE2:=BAKIYE;
    IF (dm.extre_query.FieldByName('TOPLAMTUTAR').AsFloat> 0) and (dm.extre_query.FieldByName('TUR').AsString <> 'İADE')THEN
    BAKIYE:=BAKIYE+dm.extre_query.FieldByName('TOPLAMTUTAR').AsFloat;
    IF dm.extre_query.FieldByName('ODEME').AsFloat> 0 THEN
    BAKIYE := BAKIYE -  dm.extre_query.FieldByName('ODEME').AsFloat;
    dm.extre_query.Edit;
    dm.extre_query.FieldByName('SON_DURUM').AsFloat:= BAKIYE;   
    dm.extre_query.FieldByName('SON_DURUM2').AsFloat:= BAKIYE2;  
    dm.extre_query.Post;
    dm.extre_query.Next;
    end;
detaylıca izah edecek ustalara teşekkürlerimi sunuyorum.
Cevapla