Dinamik sql sorgusu

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
Kullanıcı avatarı
esistem
Üye
Mesajlar: 464
Kayıt: 02 Eki 2007 11:22
İletişim:

Dinamik sql sorgusu

Mesaj gönderen esistem »

Arkadaşlar merhaba,
Konuyu biraz araştırdım fakat sonuca ulaşamadım, yapmak istediğim sql sorgusunu kısaca anlatayım.
3 adet tablom var diyelim,
1. Tablo STOK olsun alanlarıda KOD, ADI olsun
2. Tablo DEPO olsun alanlarıda KOD, STOKKODU, ADI olsun
3. Tablo STOKHAREKET olsun alanlarıda KOD, STOKKODU, DEPOKODU, GIREN, CIKAN olsun

normalde 2 query ile

Kod: Tümünü seç

 select KOD, ADI from STOK  

diyerek tüm stokları çekip gride atıyorum,
altınada başka bir gide bağlanacak sql kodunu yazıyorum,

Kod: Tümünü seç

 select KOD,STOKKODU,DEPOKODU,GIREN,CIKAN from STOKHAREKET WHERE STOKKODU=:KOD AND DEPOKODU=:DKODU  

deyip, bu query'ide stok query sine datasource den bağlayınca seçili STOK'a ve DEPOYA ait giren çıkan işlemleri görebiliyorum.

Yapmak istediğim ise şu;
Öyle bir sql kodu yazmalıyım ki, stokları çekerken, kaç adet depo varsa bunları döngüye sokup stokhareket tablosundan da sum(giren-cikan) as kalan şeklinde dışarıya çıktı versin.

Kısaca görmek istediğim tablo şu,
STOK_ADI DEPO1KALAN DEPO2KALAN DEPO3KALAN .....
Ürün1 15 0 7 .....

gibi, fakat önemli nokta şudur, yeni bir depo ekleme olasılığı her an var. Eklendiği zaman ise ben koda müdehale etmiyeyim otomatik eklesin querye.

Bu arada bu işlem dolaylı yollardan elbetteki çözülebiliyor, formun oncreate inde depoları saydırıp ona göre bir sql kodu yazılabilir vs.vs. benim öğrenmek istediğim view ile veya tek bir query de bu işlem yapılabilirmi?
Kullanıcı avatarı
veliadiguzel
Üye
Mesajlar: 197
Kayıt: 09 Tem 2003 02:11
Konum: Gebze/Kocaeli
İletişim:

Re: Dinamik sql sorgusu

Mesaj gönderen veliadiguzel »

Depoları tuttuğun bir tablo varsa

Kod: Tümünü seç

Select * from stokharaket where depokodu in ( Select depokodu  from depolar);


gibi bir kod işini görebilir.
Veli ADIGÜZEL
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Re: Dinamik sql sorgusu

Mesaj gönderen Kuri_YJ »

Selamlar,

O pek mümkün görünmüyor. Çünkü, Kolon Sayısı Depo Sayısına göre değişkenlik gösterecektir. Ancak Kulağınızı dolaylı göstermek gibi bir şey yapabilirsiniz. Ama astarı yüzünden pahalı olur.

Bir tane SP yazın, Bu SP'de depo kodlarına göre bir select hazırlasın o selectin sonucunu döndürsün.

Bence Client Tarafta SQL'li hazırlamak daha basit olur.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
esistem
Üye
Mesajlar: 464
Kayıt: 02 Eki 2007 11:22
İletişim:

Re: Dinamik sql sorgusu

Mesaj gönderen esistem »

Program içersinde (client) dinamik bir SQL sorgusu ile işimi çözdüm bende zaten, başka türlü maalesef olmuyor.
Cevapla