sql de sutunların çarpımını nasıl yapabilirim?
sql de sutunların çarpımını nasıl yapabilirim?
Önce peşinen söyliyeyim forumda arattım!
sorguda sum() komutu ile bir sutunun toplamını bulabildiğimiz gibi çarpımlarını da bulmamızın bir yolu var mı?
sorguda sum() komutu ile bir sutunun toplamını bulabildiğimiz gibi çarpımlarını da bulmamızın bir yolu var mı?
select carpım(oran) from tablo where a=5
gibi bir cümle ile tablodaki a alanı 5 olan kayıtların carpımlarını bulmak istiyorum. Mesela bu şartları sağlayan kayıtlardaki oranlar 3.2.1 ise sonuç olarak 6 döndürecek bir cümle kurmak istiyorum. Bu cümlede carpım kelimesi yerine yazabileceğim bir komu var mı?
gibi bir cümle ile tablodaki a alanı 5 olan kayıtların carpımlarını bulmak istiyorum. Mesela bu şartları sağlayan kayıtlardaki oranlar 3.2.1 ise sonuç olarak 6 döndürecek bir cümle kurmak istiyorum. Bu cümlede carpım kelimesi yerine yazabileceğim bir komu var mı?
select carpım(oran) from tablo where a=5
gibi bir cümle ile tablodaki a alanı 5 olan kayıtların carpımlarını bulmak istiyorum. Mesela bu şartları sağlayan kayıtlardaki oranlar 3.2.1 ise sonuç olarak 6 döndürecek bir cümle kurmak istiyorum. Bu cümlede carpım kelimesi yerine yazabileceğim bir komu var mı?
gibi bir cümle ile tablodaki a alanı 5 olan kayıtların carpımlarını bulmak istiyorum. Mesela bu şartları sağlayan kayıtlardaki oranlar 3.2.1 ise sonuç olarak 6 döndürecek bir cümle kurmak istiyorum. Bu cümlede carpım kelimesi yerine yazabileceğim bir komu var mı?
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
Abi gazı verdin yaktın biziyine de zor gibi Fahrettin hoca bile çözemez

Simdi bu işi çözene kadar iş , uyku, YEMEK, herşeye ara vericez...
* http://www.fahrettin.org Manzara Fotoğraflarım... 
* http://delphiturkiye.gunduz.info Seminerler...
* http://www.hakmar.com.tr Kalite bir haktır...

* http://delphiturkiye.gunduz.info Seminerler...

* http://www.hakmar.com.tr Kalite bir haktır...

evet bu gunlerde biraz yoğunluğum oluştuğundan sessizleştik... 
Konu üzerinde düşündüm... Aklıma gelen tek yöntem bir stored procedure ile dongu halinde butun kayıtlar elden geçirilip çarpılarak problem çözülebilir... Sybase ile bu procedure'u yazmak fazla problem degil ama.... kullanılan veritabanına göre iş zorlaşabilir...

Konu üzerinde düşündüm... Aklıma gelen tek yöntem bir stored procedure ile dongu halinde butun kayıtlar elden geçirilip çarpılarak problem çözülebilir... Sybase ile bu procedure'u yazmak fazla problem degil ama.... kullanılan veritabanına göre iş zorlaşabilir...
* http://www.fahrettin.org Manzara Fotoğraflarım... 
* http://delphiturkiye.gunduz.info Seminerler...
* http://www.hakmar.com.tr Kalite bir haktır...

* http://delphiturkiye.gunduz.info Seminerler...

* http://www.hakmar.com.tr Kalite bir haktır...

firebird için;
(D_SAYI integer olarak tanımlı ve return)
Kod: Tümünü seç
declare variable tmp_sayi integer;
begin
D_SAYI = 1;
for select SAYI from SAYI into :tmp_sayi
do
begin
D_SAYI = tmp_sayi * D_SAYI;
end
end
@onaydin'ın koduna "Suspend" satırının eklenmesi gerekli.
Kod: Tümünü seç
DECLARE VARIABLE TMP_SAYI INTEGER;
BEGIN
D_SAYI = 1;TMP_SAYI=1;
FOR SELECT ORAN FROM TABLO WHERE A=5 INTO :TMP_SAYI
DO
BEGIN
D_SAYI = TMP_SAYI * D_SAYI;
SUSPEND;
END
END
aslında ben kodu çalıştırdım suspend eklemeden çalışıyordu
bide bunu procedure le yapmak bana ters geldi çünkü bu durumda kod mysql de çalışmıyordu. Biraz araştırdım mssql için bi kod buldum sybase denedim çalışıyor sadece select yeterli böyle olunca haliyle mysql de de çalışır.
bide bunu procedure le yapmak bana ters geldi çünkü bu durumda kod mysql de çalışmıyordu. Biraz araştırdım mssql için bi kod buldum sybase denedim çalışıyor sadece select yeterli böyle olunca haliyle mysql de de çalışır.
Kod: Tümünü seç
select convert(varchar,exp(sum(log(SAYI)))) from TABLO