Program icerisnde viewe parametre gondermek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Program icerisnde viewe parametre gondermek
s.a.
view de islem_tarihinin verilen aralıklar arasında olması icin ve tarih verilmemisse bu sartın gecilmesini saglayamadım nerde yanlıs yapıyorum acaba
create view cari_liste ( Cari_kod,Cari_isim,b, a,tarih,tarih2)
as
select cari_kod,cari_isim,sum(hareket.borc_TL)as b,sum(hareket.alacak_TL)as a from kart,hareket
where kart.cari_kod=hareket.cari_kod
and hareket.islem_tarihi between =:gelen_tarih1 and gelen_tarih2
group by cari_kod ,cari_isim
;
view de islem_tarihinin verilen aralıklar arasında olması icin ve tarih verilmemisse bu sartın gecilmesini saglayamadım nerde yanlıs yapıyorum acaba
create view cari_liste ( Cari_kod,Cari_isim,b, a,tarih,tarih2)
as
select cari_kod,cari_isim,sum(hareket.borc_TL)as b,sum(hareket.alacak_TL)as a from kart,hareket
where kart.cari_kod=hareket.cari_kod
and hareket.islem_tarihi between =:gelen_tarih1 and gelen_tarih2
group by cari_kod ,cari_isim
;
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
oracle da ben view i normal table gibi sorgulayabiliyorum
select * from v_table where ........
select * from v_table where ........
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
-
- Kıdemli Üye
- Mesajlar: 395
- Kayıt: 22 Tem 2004 09:15
- Konum: İzmir
- İletişim:
Selam,
Soruna neden olan view içinde bir aggregate fonksiyonu kullanılması ve bağlı olarak gruplamanın yapılması. Gruplamaya esas olan veri seti, tarih alanı üzerinde filtrelendiğinde oracle da olsa bu şekilde kullanamazsınız. Evet, normal bir view ı tablo gibi SQL im diyen tüm db lerde sorgularsınız fakat dikkatinizi ;
bölümüne çekmek isterim. Gruplamaya esas teşkil eden bu kriterin view oluşturulduktan sonra gönderilmesi mümkün değildir. Şöyle yapabilirsiniz;
Bu durumda da view oluşturmanın bir mantığı kalmayacaktır. Sadece iki tabloyu join etmiş olmaktan başka. Performansı düşürmekten başkaca bir işe yaramayacak zira tek döngüde oluşturulabilecek plan, iki döngüde oluşacak ve performansı kötü yönde etkileyecektir.
Oracle ile ise başka bir topic de verdiğim örneğe bakarak bu normalde olası olmayan view tipini oluşturabilirsiniz. Senkronize session değişkenleri tutabilen diğer db lerde de aynı yöntem çalışır. Topiği hatırlayamıyorum ama dah 3-5 gün önce orada vermiştim örneği.
Soruna neden olan view içinde bir aggregate fonksiyonu kullanılması ve bağlı olarak gruplamanın yapılması. Gruplamaya esas olan veri seti, tarih alanı üzerinde filtrelendiğinde oracle da olsa bu şekilde kullanamazsınız. Evet, normal bir view ı tablo gibi SQL im diyen tüm db lerde sorgularsınız fakat dikkatinizi ;
Kod: Tümünü seç
hareket.islem_tarihi between =:gelen_tarih1 and gelen_tarih2
Kod: Tümünü seç
create view cari_liste
as
select cari_kod,cari_isim,hareket.borc_TL,hareket.alacak_TL,hareket.islem_tarihi from kart,hareket
where kart.cari_kod=hareket.cari_kod;
/
select cari_kod,cari_isim,sum(borc_TL) borcTL,sum(alacak_TL) alacakTL
from cari_liste
where
islem_tarihi between = :gelen_tarih1 and gelen_tarih2
group by cari_kod,cari_isim
Oracle ile ise başka bir topic de verdiğim örneğe bakarak bu normalde olası olmayan view tipini oluşturabilirsiniz. Senkronize session değişkenleri tutabilen diğer db lerde de aynı yöntem çalışır. Topiği hatırlayamıyorum ama dah 3-5 gün önce orada vermiştim örneği.
Doğan Zorlu, İzmir
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)