Stored Procedure

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
osmantat
Üye
Mesajlar: 1
Kayıt: 01 Oca 2009 09:04

Stored Procedure

Mesaj gönderen osmantat »

Merhaba arakdaslar asagıdaki procedure um calısmıyor. nerde hatam var.

"execute statement 'insert into musteritopurun values('''||:musteriid||''','''||:barkod||''','''||:toplam||''')';" bu kısmı yazmadıgım zaman dogru calısıyor. ama benim burda onceki selectteki cıktıları bu tabloya insert etmem gerek. bu konuda yardımcı olursanız sevinirim.

Kod: Tümünü seç

For execute statement 'select m.musteriid from musteri m' into :musteriid
  do
  For execute statement 'select first 5 um.urunbarkod, sum(um.miktar) from urunmusteri um where um.musteriid='''||:musteriid||''' group by um.musteriid, um.urunbarkod order by sum(um.miktar) desc'
    into :barkod,:toplam
    do
        execute statement 'insert into musteritopurun values('''||:musteriid||''','''||:barkod||''','''||:toplam||''')';
    suspend;
  suspend;
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Re: Stored Procedure

Mesaj gönderen rsimsek »

Sanki blok sonlamalarında hata var. Aşağıdaki şekilde deneyebilirsiniz..

Kod: Tümünü seç

For execute statement 'select m.musteriid from musteri m' into :musteriid DO
  BEGIN
    For execute statement 'select first 5 um.urunbarkod, sum(um.miktar) from urunmusteri um 
where um.musteriid='''||:musteriid||''' group by um.musteriid, um.urunbarkod order by sum(um.miktar) desc' into :barkod, :toplam DO
    BEGIN
       execute statement 'insert into musteritopurun values('''||:musteriid||''','''||:barkod||''','''||:toplam||''')';
       SUSPEND;
    END
    SUSPEND;
  END
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla