Firebird view de hesaplama

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
AhmetNuri
Üye
Mesajlar: 262
Kayıt: 02 Tem 2007 07:55
Konum: ist
İletişim:

Firebird view de hesaplama

Mesaj gönderen AhmetNuri »

Selam sorum şu iki ayrı tablom var bunlar bir view de birleştirdim. biri cari diğeri doviz tablosu
amacım cari tablosunda tl usd yada euro girilen değelere göre kur hesaplatıp tl değerini bulmak bunun için aşğıdaki gibi bir view denedim olmadı.

Kod: Tümünü seç

CREATE VIEW VWKASA (
  
    VWKASA_TUTAR,
    VWKASA_PARABIRIMI,
    VWKASA_CARI,
    WVKASA_DOVUZUSD,
    WVKASA_DOVIZEURO,
    VWKASA_TLDEG)
AS
SELECT

    KASA.KASA_TUTAR,
    KASA.KASA_PARABIRIMI,
    KASA.KASA_CARI,
    DOVIZ.DOVIZ_USD,
    DOVIZ.DOVIZ_EURO
    if KASA.KASA_PARABIRIMI = 'EURO' THEN VWKASA_TLDEG = KASA.KASA_TUTAR * DOVIZ.DOVIZ_EURO
FROM
KASA,DOVIZ

bu satır arıza çıkartı bunun düzgün yazılışını bulmam lazım.

Kod: Tümünü seç

    if KASA.KASA_PARABIRIMI = 'EURO' THEN VWKASA_TLDEG = KASA.KASA_TUTAR * DOVIZ.DOVIZ_EURO
teşekkrüler
En son AhmetNuri tarafından 17 Ara 2010 02:26 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Ahmet DENİZ
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: FIREBIRD İLE VIEW DE HESAPLAMA

Mesaj gönderen sabanakman »

SQL sorgularda genelde şarta bağlı değer hesaplamada CASE-WHEN kullanılır. Mesela benzeri durum için sorguyu

Kod: Tümünü seç

CASE WHEN KASA.KASA_PARABIRIMI = 'EURO' THEN VWKASA_TLDEG = KASA.KASA_TUTAR * DOVIZ.DOVIZ_EURO ELSE 0 END
şeklinde yazmak gerekebilir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: FIREBIRD İLE VIEW DE HESAPLAMA

Mesaj gönderen aslangeri »

s.a.
forum kurallarına uyarak sorunuzun/sorularınızın başlığını düzeltirseniz sevinirim.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
AhmetNuri
Üye
Mesajlar: 262
Kayıt: 02 Tem 2007 07:55
Konum: ist
İletişim:

Re: Firebird view de hesaplama

Mesaj gönderen AhmetNuri »

bu işlemi Trigger ile çözdüm çalışan kod

Kod: Tümünü seç

AS
declare variable avaluta numeric(15,4);
begin
  /* Trigger text */

if (new.order_pricetype = 'EURO') then begin
  select valuta_euro from valuta  into :avaluta;
end
else if (new.order_pricetype = 'USD') then begin
  select valuta_usd from valuta  into :avaluta;


new.order_pricegold = new.order_price * avaluta;

end
Ahmet DENİZ
Cevapla