• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

SQL Sorguda aradaki değerlerin toplamı

  • Konbuyu başlatan Konbuyu başlatan tamer42
  • Başlangıç tarihi Başlangıç tarihi

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,201
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,
Aşağıdaki kod ile sütunda 2. karakter ile 3. karakterin toplamı 8 olan değerleri filtrelemek isterken;

yalnız bu işlemi yaparken eksik yapıyor, sadece değerlerden biri 0 diğeri 8 olanları getirmekte;

25373 değeri de (5+3)= 8 olmasına karşın bunu getirmiyor?
Sebebi ne olabilir?
desteğiniz için teşekkürler,
iyi Akşamlar.

Kod:
Sub sqlDataList()
Dim Con As Object
Dim RS As Object
Dim SH As Worksheet

Set SH = Sheets("DB")
SH.Cells.ClearContents

FileName = ThisWorkbook.FullName
    
Set Con = CreateObject("ADODB.CONNECTION")

    With Con
        .Open "Provider=Microsoft.Ace.Oledb.12.0;" & _
         "Extended Properties='Excel 12.0;" & _
         "HDR=NO;';Data Source=" & FileName
    End With

Set RS = VBA.CreateObject("ADODB.Recordset")
' ' - - - - - - - - - - - - - -
        SQL = "SELECT [F1] FROM [Data$A2:B] " & _
               "WHERE mid([F1],2,1)+mid([F1],3,1)=8"

              RS.Open SQL, Con, 1, 3
   
        If Not RS.EOF Then
          SH.Range("A2").CopyFromRecordset RS
        End If

   RS.Close
' ' - - - - - - - - - - - - - -
  SQL = ""
  Set RS = Nothing
  Set SH = Nothing
  
End Sub
 

Ekli dosyalar

Deneme şansım yok ama aşağıdaki gibi deneyin.
SQL = "SELECT [F1] FROM [Data$A2:B] " & _
"WHERE (mid([F1],2,1)+mid([F1],3,1))=8"
 
Deneme şansım yok ama aşağıdaki gibi deneyin.
SQL = "SELECT [F1] FROM [Data$A2:B] " & _
"WHERE (mid([F1],2,1)+mid([F1],3,1))=8"
Veysel Hocam değişen bir durum olmadı
aradaki + işaretini sanki algılamıyor.
2. ve 3. karakteri 0 ve 8 olanları getiriyor.
teşekkürler,
 
Bu olabilir mi..

C++:
strSQL = "SELECT F1 FROM [Data$A2:B] WHERE (VAL(MID(F1,2,1))+VAL(MID(F1,3,1))) = 8"
 
Bu olabilir mi..

C++:
strSQL = "SELECT F1 FROM [Data$A2:B] WHERE (VAL(MID(F1,2,1))+VAL(MID(F1,3,1))) = 8"
Korhan Hocam selamlar,
Bu konuda şöyle bir problem oldu, bazı satırlarda veri bulunmayınca hata verdi:
Aşağıdaki şekilde de denedim fakat bir çözüm olmadı,
burada boş olan verileri dikkate almayacak şekilde bir çözüm üretilebilir mi?
tekrar teşekkürler,
iyi Çalışmalar.

Kod:
strSQL = "SELECT F1 FROM [Data$A2:B] WHERE LEN(F1)>2 AND (VAL(MID(F1,2,1))+VAL(MID(F1,3,1))) = 8 "
 

Ekli dosyalar

  • 123.jpg
    123.jpg
    14.3 KB · Görüntüleme: 2
VAL(MID(F1,2,1)) gibi yerleri asahidak gibi duzenleyip dener misiniz
VAL(MID(F1,2,1) & "")
 
Kod:
SQL = "SELECT * FROM (SELECT [F1] AS SAYI FROM [Data$A2:B]) WHERE (VAL(MID(SAYI,2,1))+VAL(MID(SAYI,3,1)))=8"
 
Kod:
        SQL = "Select XData From (Select IIF(Len(F1)>0,IIF(Val(Mid(F1,2,1))+Val(Mid(F1,3,1))=8,F1,'')) As XData From [Data$A2:A]) Where Len(XData)>0 "

.
 
Başka bir alternatif;

Kod:
        SQL = "Select F1 From [Data$A2:A] Where F1 <> 'Null' And Val(Mid(F1,2,1)) + Val(Mid(F1,3,1))= 8"

.
 
Geri
Üst