• DİKKAT

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

SQL SELECT TOP Kullanımı hk.

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,202
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,

SQL SELECT TOP Kullanımında ; aşağıdaki kodda ayları ifade m değeri "1" olduğunda ilginç bir biçimde ilk 17 veriyi getirmekte; onun dışındaki tüm aylarda yazıldığı şekliyle sorunsuz ilk 15 değeri getirmekte;
bunun sebebi hikmeti ne olabilir? sorgunun başına TOP yazdığımızda her şekilde 15' te sınırlaması gerekmiyor mu?

şimdiden teşekkürler,


Kod:
Set Sht = ActiveSheet

y = Sht.Range("F3").Value
m = Sht.Range("F4").Value

xdeg1 = CLng(DateSerial(y, 1, 1))
xdeg2 = CLng(DateSerial(y, m + 1, 1))

Set RS2 = CreateObject("ADODB.RecordSet")

Sql2 = "Select TOP 15 Brand, SUM(Frequency) As Toplam FROM [Data$A5:Y" & LR & "]" & _
" Where [Insert Start Date]>=" & xdeg1 & " And [Insert Start Date]<" & xdeg2 & _
" And [Sales Channel] Like '" & chn & "' And [Publication Type] Like '" & tip & "' And [Category] Like '" & ktg & "'" & _
"  And Brand <> 'NO BRAND' GROUP BY Brand ORDER BY SUM(Frequency) DESC"

RS2.Open Sql2, Con, 1, 3

iyi Çalışmalar.
 
Kod:
 DISTINCT TOP 15
olarak dener misiniz?
 
Merhaba,

SQL SELECT TOP Kullanımında ; aşağıdaki kodda ayları ifade m değeri "1" olduğunda ilginç bir biçimde ilk 17 veriyi getirmekte; onun dışındaki tüm aylarda yazıldığı şekliyle sorunsuz ilk 15 değeri getirmekte;
bunun sebebi hikmeti ne olabilir? sorgunun başına TOP yazdığımızda her şekilde 15' te sınırlaması gerekmiyor mu?

şimdiden teşekkürler,


Kod:
Set Sht = ActiveSheet

y = Sht.Range("F3").Value
m = Sht.Range("F4").Value

xdeg1 = CLng(DateSerial(y, 1, 1))
xdeg2 = CLng(DateSerial(y, m + 1, 1))

Set RS2 = CreateObject("ADODB.RecordSet")

Sql2 = "Select TOP 15 Brand, SUM(Frequency) As Toplam FROM [Data$A5:Y" & LR & "]" & _
" Where [Insert Start Date]>=" & xdeg1 & " And [Insert Start Date]<" & xdeg2 & _
" And [Sales Channel] Like '" & chn & "' And [Publication Type] Like '" & tip & "' And [Category] Like '" & ktg & "'" & _
"  And Brand <> 'NO BRAND' GROUP BY Brand ORDER BY SUM(Frequency) DESC"

RS2.Open Sql2, Con, 1, 3

iyi Çalışmalar.

Arkadaşlar bu konuyla ilgili örnek dosyayı ekledim;
desteğiniz için şimdiden teşekkürler;



Not: Bu arada bir şey farkettim, sql sorgusunun sonundaki;
Kod:
ORDER BY SUM(Frequency) DESC
silince sorun düzeliyor.

iyi pazarlar dilerim.
 

Ekli dosyalar

İlgili kodları bu şekilde kullanım deneyiniz.

C++:
xDeg1 = CLng(DateSerial(y, m, 1))
xDeg2 = CLng(DateSerial(y, m + 1, 0))

Set RS2 = CreateObject("ADODB.RecordSet")

sorgu = "SELECT TOP 15 Brand FROM [Data$A5:D" & LR & "]"
sorgu = sorgu & " WHERE [Insert Start Date] BETWEEN " & xDeg1 & " AND " & xDeg2 & ""
sorgu = sorgu & " AND Brand <> 'NO BRAND' GROUP BY Brand"

RS2.Open sorgu, Con, 1, 3
 
Geri
Üst