Arama butonu
Bu konudaki kullanıcılar: 1 misafir
1
Cevap
149
Tıklama
0
Öne Çıkarma
SQL'de bir sorgunun sonucunu diğer sorguya gönderme
P
8 yıl
Er
Konu Sahibi

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.

Üye Ol Şimdi Değil



M
8 yıl
Yarbay

bunu üç şekilde çözebilirsin
1- Sub Query
  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 >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.