Merhaba arkadaşlar acil çözmem gereken bir sorun var.2 sorgum var.İlkinden dönen değeri 2.sorguda kullanmam gerekiyor.
İlk Sorgum:
Select a1,count(*) as b1 from BTABLE
İkinci Sorgum:
Select a1,a2,a3,.., from ATABLE inner join BTABLEb on a1=b.a1
örneğin;ilk sorgu sonucum :a1=1 ve b1=2 ,a1=100 ve b1=8 olsun.... ikinci sorgu sonucum:a1=1 b1=2,a1=30 b1=0 ,a1=100 b1=8,a1=22 b1=0
Yani,ilk sorguda a1'e karşılık b1 hangi değeri alıyorsa ikinci sorguda aynı a1'e karşılık gelen b1'in o değeri almasını istiyorum.Eğer karşılık gelen değer yoksa b1=0 olsun.
Şimdiden çok teşekkür ederim.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
Select a1,a2,a3,.., from ATABLE inner join (Select a1,count(*) as b1 from BTABLE) as btab on a1=b.a1
2- Common Table Expression
With [b]btab[/b] ( Select a1,count(*) as b1 from BTABLE ) Select a1,a2,a3,.., from ATABLE inner join btab on a1=b.a1
3- Gecici tablolar
CREATE TEMPORARY TABLE btab ( a1 varchar(20)--tablonun değeri ne ise onu koy b1 int ... ) select a1,b1 into #btab from BTABLE
sonra
Select a1,a2,a3,.., from ATABLE inner join #btab on a1=b.a1
Bu üçü ile de çözebilirsin lakin basitden karmaşığa doğru örnekledim. Sorgun çok büyükse stored procedure yap içine de common table expression kullan(anbilrsin) böylece daha okunaklı ve değiştirilebilir olur.
3 yol ise create temporar table demeden select into #bta ile de çalısıyor lakin bunu kullanmanın sana avantajı sonradan bu tabloyu işleyebilir olman. Yani benim söyle bir ihtiyacım olmustu. Sorgu ile Otel odalarını getiriyorum. lakin fiyat öyle select * from ile gelmiyor. Orada hesaplanması gereken durumlar var. Örneğin indirim varmı git indirim tablosuna bak. her günün fiyatı farklı gün gün hesapla topla gibi. Neyse bende sorguyu gecici tabloya yazıp sonra cursor ile fiyatı hesaplayıp select ile sonuc tablosunu gönderiyordum. Subdomain ve commontable tam bu işi karşılamıyor. Aslında alternatif olarak UserFunctions kullansam o da olurdu. o her kolonu hesaplardı. Neyse bence bu üç anahtar kelime sorunu çözer. Sub Query , Common Table Expression , temporary table. bu konuların tabi ki detayları da var. bakarsın.
< Bu mesaj bu kişi tarafından değiştirildi mahoni_38 -- 21 Şubat 2017; 11:24:17 >
İlk Sorgum:
İkinci Sorgum:
örneğin;ilk sorgu sonucum :a1=1 ve b1=2 ,a1=100 ve b1=8 olsun....
ikinci sorgu sonucum:a1=1 b1=2,a1=30 b1=0 ,a1=100 b1=8,a1=22 b1=0
Yani,ilk sorguda a1'e karşılık b1 hangi değeri alıyorsa ikinci sorguda aynı a1'e karşılık gelen b1'in o değeri almasını istiyorum.Eğer karşılık gelen değer yoksa b1=0 olsun.
Şimdiden çok teşekkür ederim.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.