Aynı kolonundaki sayıları birbiri ile çarpma (Çözüldü)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
polikarp
Üye
Mesajlar: 20
Kayıt: 07 Eki 2003 03:28

Aynı kolonundaki sayıları birbiri ile çarpma (Çözüldü)

Mesaj gönderen polikarp »

Paradoks tabloda sql sorguyla aynı tablo sütununda yer alan tüm sayıları birbiri ile çarpıp başka tablonun ilgili alanına yazmak istiyorum.

Kod: Tümünü seç

qry1.SQL.Add('Insert into yazdırılacak_tablo (tablo_sütunu) select çarpılacak_tablo_sütunu as yazdırılacak_tablo_sütunu from çarpılacak_verileri_tutan_tablo');
Çarpılacak_tablo_sütununda ne tür bir işlem yapılarak tüm sayılar birbiri ile çarpılır.
En son polikarp tarafından 20 Kas 2010 01:51 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Tablonun aynı kolonundaki sayıları birbiri ile çarpma

Mesaj gönderen orhancc »

Bunu bir dener misin?

Kod: Tümünü seç

select exp(sum(log(alanadi))) from tablo 
polikarp
Üye
Mesajlar: 20
Kayıt: 07 Eki 2003 03:28

Re: Tablonun aynı kolonundaki sayıları birbiri ile çarpma

Mesaj gönderen polikarp »

Cevap için teşekkür ederim daha önce denemiştim 'capability not supported' diyor. Snıyorum delphi bu kodu desteklemiyor.
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Tablonun aynı kolonundaki sayıları birbiri ile çarpma

Mesaj gönderen orhancc »

Delphi değil BDE desteklemiyor.
polikarp
Üye
Mesajlar: 20
Kayıt: 07 Eki 2003 03:28

Re: Tablonun aynı kolonundaki sayıları birbiri ile çarpma

Mesaj gönderen polikarp »

Bunun yerine ne kullanılabilir?
Eğer firebird kullansam (Tabi önce öğrenmem lazım:)) destekler mi?
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Tablonun aynı kolonundaki sayıları birbiri ile çarpma

Mesaj gönderen orhancc »

SQL de pek sorun olacağını sanmıyorum. Firebird kullanabilirsin kesinlikle. Eğer ille paradoxta yapacağım diyorsan bir döngü ile delphi içinden hepsinin çarpımını alabilirsin.
polikarp
Üye
Mesajlar: 20
Kayıt: 07 Eki 2003 03:28

Re: Tablonun aynı kolonundaki sayıları birbiri ile çarpma

Mesaj gönderen polikarp »

Şu an için sadece paradoks kullanabiliyorum bu nedenle döngüyü nasıl yapabileceğim konusunda bilgi verebilirmisiniz.
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Tablonun aynı kolonundaki sayıları birbiri ile çarpma

Mesaj gönderen orhancc »

Kod: Tümünü seç

var
  toplamlar:Integer; // eğer float veya double alan kullanıyorsan değişken tipini ona göre ayarlamalısın integer yetmezse long veya long long kullan
begin
  toplamlar := 0; // toplamlar değişkenine ilk değerini atıyoruz.
  tablo.first; //tablonun başına gidiyoruz
  for i:=0 to tablo.count-1 do // tablodaki kayıt sayısı kadar döngü kuruyoruz burada count yerine paradoxta reccount yada ona benzer birşey olmalı
  begin
    toplamlar := toplamlar * tabloToplanacakAlan.value; // aktif satırdaki değeri değişkene atıyoruz
    tablo.next; // sonraki kayda gidiyoruz
  end;
//   toplamlar değişkenini istediğin tabloya yazdırabilirsin
end;
 
polikarp
Üye
Mesajlar: 20
Kayıt: 07 Eki 2003 03:28

Re: Tablonun aynı kolonundaki sayıları birbiri ile çarpma

Mesaj gönderen polikarp »

Cevap için teşekkür ederim.

Kod: Tümünü seç

for i:=0 to tablo.count-1 do 
Burdaki 'i' sanıyorum 'toplamlar' eğer değilse tanımlanmamış değişken diyor.

Aynı kodda count ve reccount her ikiside çalışmıyor.
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Tablonun aynı kolonundaki sayıları birbiri ile çarpma

Mesaj gönderen orhancc »

Kod: Tümünü seç

i :Integer;
ayrıca ekle

Paradox'a ne ile bağlanıyorsun ?
polikarp
Üye
Mesajlar: 20
Kayıt: 07 Eki 2003 03:28

Re: Tablonun aynı kolonundaki sayıları birbiri ile çarpma

Mesaj gönderen polikarp »

Denerken tquery ile bağlıydı.
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Tablonun aynı kolonundaki sayıları birbiri ile çarpma

Mesaj gönderen orhancc »

ADOQuery.RecordCount
kullanabilirsin veya
while not AdoQuery.EOF do
diyebilirsin
polikarp
Üye
Mesajlar: 20
Kayıt: 07 Eki 2003 03:28

Re: Tablonun aynı kolonundaki sayıları birbiri ile çarpma

Mesaj gönderen polikarp »

Cevap için tekrar teşekkür ederim.
Son durum şöyle;

Kod: Tümünü seç

for i:=0 to tablo.count-1 do için tquary ile qry1.RecordCount-1 do
yaptım oldu.

Kod: Tümünü seç

toplamlar := toplamlar * tabloToplanacakAlan.value;
kısmındaki 'tabloToplanacakAlan' için integer değişken tanımladım oldu gibi gmrünüyor.

toplamlar değişkenini tabloya yazdırmak için şöyle yaptım;

Kod: Tümünü seç

qry1.SQL.Add('Insert into yazılacak_tablo (tablo_alanı) select '+toplamlar+' as tablo_alanı from veri_alınan_tablo');
olmadı.
Hata mesajı şöyle;

Kod: Tümünü seç

incompatible types 'string' and 'integer'
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Tablonun aynı kolonundaki sayıları birbiri ile çarpma

Mesaj gönderen orhancc »

tip uyuşmazlığı hatası alıyorsun integer alana string mi kaydetmeye çalışıyorsun. eğer öyle ise strtoint() ile integere çevirmen lazım.
polikarp
Üye
Mesajlar: 20
Kayıt: 07 Eki 2003 03:28

Re: Tablonun aynı kolonundaki sayıları birbiri ile çarpma

Mesaj gönderen polikarp »

Tekrar teşekkür;

Kod: Tümünü seç

'+toplamlar+' yerine ''toplamlar'' 
yazınca sql ifadesindeki sorun kalktı.

Ancak bu seferde çalıştırdığımda 'type mistmach in expression' şeklinde tip uyuşmazlığı mesajı alıyorum.

Tablodaki yazılacak alan number.


Acaba hata şuradan kaynaklanıyor olabilirmi;

Kod: Tümünü seç

toplamlar := toplamlar * tabloToplanacakAlan.value;
buradaki tabloToplanacakAlan.valuekısmı için integer bir değişken tanımlamıştım ancak değikeni sadece tablo alanı için tanımlayabildim ve .value kısmı devreden çıktı.
Cevapla