left join'de subquery (nerde firebird'cüler?)
left join'de subquery (nerde firebird'cüler?)
select * from a
left join (select id2, sum(x) x form b group by id2) as b on id2=id
böyle bir sql firebirdde nasıl yazılır. bu mysql'de çalışıyor mesela.
left join (select id2, sum(x) x form b group by id2) as b on id2=id
böyle bir sql firebirdde nasıl yazılır. bu mysql'de çalışıyor mesela.
bu kötü oldu işte
bu kötü oldu işte,
trigger, sp falam mysql5'de çıkacak diye bekledik, onda çıktı.
işimiz görülsün ücretsiz diye fb kullanmaya başladık şimdi aynı hikayeler bunda da olmaya başladı.
trigger, sp falam mysql5'de çıkacak diye bekledik, onda çıktı.
işimiz görülsün ücretsiz diye fb kullanmaya başladık şimdi aynı hikayeler bunda da olmaya başladı.
s.a.
denemedim ama şöyle birşey olmazmı?
sp ilede yapılabilir
kolay gelsin.
denemedim ama şöyle birşey olmazmı?
Kod: Tümünü seç
select a.*, sum(b.x) from a
left join b on b.id2=a.id
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
sp'de de sonuçta sql yazmayacak mısın?
sp'de de sonuçta sql yazmayacak mısın?
orada da çalışmaz, sql aynı sql , veritabanı aynı veritabanı nerede yazarsan yaz.
ama sp'de nasıl bir şey yazmaktan bahsettiğini açarsan belki başka birşeyden bahsediyorsundur.
Bende olay şu
sipariş_başlık, sipariş_detay dosyası var.
sipariş_başlık
ID Tarih ... olsun,
sipariş_detay
Başlık_ID Adet ... olsun,
ben sonuçta şunu almak istiyorum
ID Tarih Sum(Adet)
orada da çalışmaz, sql aynı sql , veritabanı aynı veritabanı nerede yazarsan yaz.
ama sp'de nasıl bir şey yazmaktan bahsettiğini açarsan belki başka birşeyden bahsediyorsundur.
Bende olay şu
sipariş_başlık, sipariş_detay dosyası var.
sipariş_başlık
ID Tarih ... olsun,
sipariş_detay
Başlık_ID Adet ... olsun,
ben sonuçta şunu almak istiyorum
ID Tarih Sum(Adet)
şöyle bişi
kodları burda yazdım yani elden geçirmen gerek.
bu şekilde yapabilirsin.
kolay gelsin.
Kod: Tümünü seç
for
select id,tarih from siparisbaslik
into :out_id, out_tarih
do
begin
select sum(adet) from siparis_detay
where baslik_id=:out_id
into :out_toplam
suspend
end
bu şekilde yapabilirsin.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
- sahinemrah44
- Üye
- Mesajlar: 13
- Kayıt: 21 Nis 2004 10:42
- Konum: Malatya
aşağıdaki kod sanırım işini görecek.
Kod: Tümünü seç
SELECT
FIRMA_ADI
,(SELECT COALESCE(SUM(NET_URETIM),0) FROM AMBAR
WHERE URETIM_EMRI.uretim_emri=AMBAR.uretim_emri)AS NET_AMBAR
FROM URETIM_EMRI
mecbur böyle yaptık
mecbur ben de öyle yaptım ama böyle bir kodun sorumdaki sqlden daha yavaş çalışacağını düşünüyorum. üstelik bir tek saha değil üç tane ayrı saha olacak bu iş için. böyle olunca daha da yavaş olacaktır sanırım. neyse şimdilik böyle yapcaz. ama hiç sevmem kayıt bazında subquery yazmayı büyük verilerde kasılıyor. saol
SELECT
FIRMA_ADI
,(SELECT COALESCE(SUM(NET_URETIM),0)
,(SELECT COALESCE(COUNT(NET_URETIM),0)
,(SELECT COALESCE(SUM(BRUT_URETIM),0)
FROM AMBAR
WHERE URETIM_EMRI.uretim_emri=AMBAR.uretim_emri)AS NET_AMBAR
FROM URETIM_EMRI
SELECT
FIRMA_ADI
,(SELECT COALESCE(SUM(NET_URETIM),0)
,(SELECT COALESCE(COUNT(NET_URETIM),0)
,(SELECT COALESCE(SUM(BRUT_URETIM),0)
FROM AMBAR
WHERE URETIM_EMRI.uretim_emri=AMBAR.uretim_emri)AS NET_AMBAR
FROM URETIM_EMRI
- sahinemrah44
- Üye
- Mesajlar: 13
- Kayıt: 21 Nis 2004 10:42
- Konum: Malatya
evet kasılma konusunda haklısın. fakat çok farklı denemeler yaptım farklı kodlarla en hızlısı bu çıktı daha falza geliştiremedim. hatta formu incelediysen bu sorun ile ilgili bir mesajım var orada sql kodunu inceleye bilirsin tablolarımda biraz büyük kasıyor biraz zaman bulabilirsem biraz daha kurcalıyacağım.
İyi çalışmalar.
İyi çalışmalar.
başka bir yol daha var
başka bir yol daha var, bir de onu dene.
o da şudur.
subqueryi bir view olarak oluştur ve esas sqlinde bu viewi kullan.
anladın mı?
hız farkını bir dene bakalım ne çıkacak?
ben de çok veri olmadığı için test edemiyorum. senin test etmen çok basit olacaktır.
o da şudur.
subqueryi bir view olarak oluştur ve esas sqlinde bu viewi kullan.
anladın mı?
hız farkını bir dene bakalım ne çıkacak?
ben de çok veri olmadığı için test edemiyorum. senin test etmen çok basit olacaktır.
- sahinemrah44
- Üye
- Mesajlar: 13
- Kayıt: 21 Nis 2004 10:42
- Konum: Malatya
- sahinemrah44
- Üye
- Mesajlar: 13
- Kayıt: 21 Nis 2004 10:42
- Konum: Malatya
merhaba view olarak denedim yapığım işlemler şöyle;
1-view oluşturmak için programda kullanılmış olduğum Sql kodunu çalıştırarak bir memo alnına yönledirdim ve oluşan Sql kodunu kopyaladım.
2- bu kodu ibexpert programında view(Rapor) oluşturarak hiç bir değişiklik yapmadın view mı oluşturdum.
3-programda yeni bir button ekleyerek ibqueryde Rapor(view) kodunu hazıladım.
4-ardından ben şunda kullanılan Sql kodu çalıştırdım yaklaşık 10-12 sn sonuç döndü lakin ibqurey kapatmak istediğimde yaklaşık 2 dakikada zor kapattı.
5- bu seferde rapor(view) çağırdım yaklaışık 2-3 dakikada sonuç döndü fakat ondada aynı şey oldu ibquery kapatmam 1-2 dakika sürdü.
sonuç yoruma açık.
unutmadan sistemin özellikleri 1.5 gb ram,p4 3.2,15.000 Rpm Scsi Hdd
1-view oluşturmak için programda kullanılmış olduğum Sql kodunu çalıştırarak bir memo alnına yönledirdim ve oluşan Sql kodunu kopyaladım.
2- bu kodu ibexpert programında view(Rapor) oluşturarak hiç bir değişiklik yapmadın view mı oluşturdum.
3-programda yeni bir button ekleyerek ibqueryde Rapor(view) kodunu hazıladım.
4-ardından ben şunda kullanılan Sql kodu çalıştırdım yaklaşık 10-12 sn sonuç döndü lakin ibqurey kapatmak istediğimde yaklaşık 2 dakikada zor kapattı.
5- bu seferde rapor(view) çağırdım yaklaışık 2-3 dakikada sonuç döndü fakat ondada aynı şey oldu ibquery kapatmam 1-2 dakika sürdü.
sonuç yoruma açık.
unutmadan sistemin özellikleri 1.5 gb ram,p4 3.2,15.000 Rpm Scsi Hdd