İç SQL Kayıt sayısını -> Dış SQL ile kullanmak (!)

Diğer 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ı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

İç SQL Kayıt sayısını -> Dış SQL ile kullanmak (!)

Mesaj gönderen mrmarman »

Herkese selam.

- Uzun ve yorucu bir kod yazımı içeren gece geçirdim ve beynim durdu. Konu şu..

- İç içe SQL Sorgu yaptırıyorum.

- İç SQL, (n) tane kayıt döndürürken ben dönen kayıt sayısını saydırıp dışarıdaki SQL'de kullanmak istiyorum.

- İç SQL sorgusu

Kod: Tümünü seç

 SELECT Count(1) AS Toplam FROM Tablo T2 WHERE T2.Alan1='1' AND T2.Alan2 = '2' GROUP BY T2.Alan1, T2.Alan2
- Dış SQL sorgusunu bir türlü hesaplayamadım.
- Saçma-sapan örneklersem belki yapmak istediğim daha da anlaşılır...

- Dış SQL sorgusu

Kod: Tümünü seç

SELECT T1.Alan3, T1.Alan4, Count( İç SQL ) As KayitToplami FROM Tablo T1 ...
- Teşekkürler...
Resim
Resim ....Resim
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Kod: Tümünü seç

SELECT T1.Alan3,
    T1.Alan4,
    (select count(*) from tablo t2 where t2.alan3=t1.alan3 and t2.alan4 = t1.alan4) as Toplam
FROM Tablo T1
Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Biz hocamla MSN'de devam ediyoruz ama soruyu gören diğer arkadaşlar için bilgi vermek istedim.

- Sonuç henüz olumsuz. :?

http://rapidshare.com/files/13492398/HataliSQL.zip.html linkinde örnek veritabanı ve aşağıda ekran resmini göreceğiniz SQL çalıştıran proje bulunmaktadır. (kaynak kodları da içinde) :wink:

Resim
Resim
Resim ....Resim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Arkadaşlar buldum ama büyük hayal kırıklığı yaşadım.. Hız konusunda tabi...

Kod: Tümünü seç

SELECT COUNT(1) FROM Plan_Detay T1 
WHERE T1.KaySiraNo IN 
(
   SELECT Max(KaySiraNo) AS KaySiraNo
     FROM Plan_Detay T2
     WHERE 1=1
       AND T2.PDP_Kayno = 1
       AND T2.PD_EgtTarih BETWEEN #02/01/2007# and #02/28/2007#
     GROUP BY T2.PD_EgtTarih, T2.PD_BasSaat, T2.PD_EgtSekli
)

- İlginç bir durum var. Bir fonksiyon hazırladım ver bu fonksiyon ile her kayıt için ayrı ayrı SQL çalıştırıyor, bu rakamı elde ediyorum. Beklediği en uzun süre 2 saniye.

- Bu SQL cümlesi ile bu rakamı kazanmak ise en az 4 saniye ve veritabanı yoğunluğu arttıkça uzuyor.

- İlgilenen herkese teşekkürler...
Resim
Resim ....Resim
Cevapla