SQL sorgusunda belli kritere göre kesişim hk.

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,049
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,
Ekli dosyada Data sayfasında "A" sütununda isimler var, "B" sütununda ise yetenek değerleri mevcut,

Yapmak istediğim Yetenek alanında 1 ve 2 olanlarda isimlerin ortak olanları (kesişimi) ve ortak olmayanları (kesişmeyenleri);

sorgusunu nasıl oluşturabiliriz?

Teşekkürler,
iyi hafta sonları..

Kod:
Sub KesisimListe()
Dim Con As Object
Dim RS As Object
Dim Sql1 As String

Sayfa2.Cells.ClearContents

 yol = ThisWorkbook.FullName
Set Con = CreateObject("ADODB.Connection")
Con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _
   yol & ";extended properties=""Excel 12.0;hdr=Yes"""

Set RS = CreateObject("ADODB.RecordSet")

Sql1 = "Select Distinct [İSİM] From [Data$]"
' ' - - - - - - - - - - - - - - - - - - - - - - - - - - - -

RS.Open Sql1, Con, 1, 1

ub = RS.RecordCount

If ub > 0 Then

   Sayfa2.Range("A2").CopyFromRecordset RS

End If

Sql1 = ""

RS.Close

Set RS = Nothing

Con.Close

Set Con = Nothing

End Sub
 

Ekli dosyalar

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Ortak olanlar;

C#:
Sql1 = " Select T1.[İSİM] From " & _
       "(Select [İSİM] From [Data$] Where [YETENEK]= 1) As T1  " & _
       " Inner Join " & _
       "(Select [İSİM] From [Data$] Where [YETENEK]= 2) As T2 " & _
       " On T1.[İSİM] = T2.[İSİM] "

.
 
Son düzenleme:

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,049
Excel Vers. ve Dili
Office 2013 İngilizce
Ortak olanlar;

C#:
 Sql1 = " Select T1.[İSİM] From (Select [İSİM] From [Data$] Where [YETENEK]= 1) As T1  " & _
        " Inner Join (Select [İSİM] From (Select [İSİM] From [Data$] Where [YETENEK]= 2)) As T2 " & _
        " On T1.[İSİM] = T2.[İSİM] "

.
Haluk Hocam çok teşekkürler,
Buradaki sorgu kesişenler, peki aynı şekilde kesişmeyenleri nasıl kurgulayabiliriz?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Kesişmeyenler;

C#:
Sql1 = " Select Distinct [İSİM] From [Data$] Where [İSİM] Not In " & _
       " (Select T1.[İSİM] From " & _
       " (Select [İSİM] From [Data$] Where [YETENEK]= 1) As T1  " & _
       " Inner Join " & _
       " (Select [İSİM] From [Data$] Where [YETENEK]= 2) As T2 " & _
       " On T1.[İSİM] = T2.[İSİM]) "

.
 
Son düzenleme:

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,049
Excel Vers. ve Dili
Office 2013 İngilizce
Kesişmeyenler;

C#:
Sql1 = " Select Distinct [İSİM] From [Data$] Where [İSİM] Not In " & _
       " (Select T1.[İSİM] From (Select [İSİM] From [Data$] Where [YETENEK]= 1) As T1  " & _
       " Inner Join (Select [İSİM] From (Select [İSİM] From [Data$] Where [YETENEK]= 2)) As T2 " & _
       " On T1.[İSİM] = T2.[İSİM]) "

.
harikulade!
iyiki varsınız Haluk Hocam
çok teşekkürler.!.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,049
Excel Vers. ve Dili
Office 2013 İngilizce
Kesişmeyenler;

C#:
Sql1 = " Select Distinct [İSİM] From [Data$] Where [İSİM] Not In " & _
       " (Select T1.[İSİM] From " & _
       " (Select [İSİM] From [Data$] Where [YETENEK]= 1) As T1  " & _
       " Inner Join " & _
       " (Select [İSİM] From [Data$] Where [YETENEK]= 2) As T2 " & _
       " On T1.[İSİM] = T2.[İSİM]) "

.
Haluk Hocam yukarıda vermiş olduğunuz sorgu nedendir nilemiyorum veri sayısı artınca makineyi çok kasıyor, Aşağıdaki şekilde bir sorgu oluşturdum ama; buna ne dersiniz, gayet hızlı çalışıyor.

ilk defa bu kadar kompleks bir sorgu oluşturdum, bu konuda sizin de görüş ve önerinizi almak isterim.
Teşekkürler,

Kod:
    Sql2 = " Select T3.[İSİM] From (Select T1.[İSİM],T2.[YETENEK] From (Select [İSİM] From [Data2$] Where [YETENEK]= 1) As T1  " & _
       " Left Join (Select [İSİM],[YETENEK] From (Select [İSİM],[YETENEK] From [Data2$] Where [YETENEK]= 2)) As T2 " & _
       " On T1.[İSİM] = T2.[İSİM]) AS T3 WHERE T3.[YETENEK] is Null"
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Doğru çalışıyorsa sorun yok demektir, tebrik ederim....

.
 
Üst