Şimdi Ara

SQL'de bir sorgunun sonucunu diğer sorguya gönderme

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
2
Cevap
0
Favori
146
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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.



  • 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 >




  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.