• DİKKAT

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

SQL - Count

Katılım
15 Mayıs 2015
Mesajlar
518
Excel Vers. ve Dili
Microsoft Office 2019
Merhabalar

sql sorgu konusunda bilgiye danışcam.

Tablodaki tekrarlayan dataları dublicate yapmadan saydırmak istiyorum


Adana

Adana

Adana

Eskişehir

Eskişehir

Eskişehir

Eskişehir

Eskişehir

Eskişehir

Konya

Tablo buyken sorgu ile count ile sayarak aşağıdaki gibi çıktı almak istiyorum. Yardımlarınızı bekliyorum


Adana

3​

Adana



Adana



Eskişehir

6​

Eskişehir



Eskişehir



Eskişehir



Eskişehir



Eskişehir



Konya

1​
 
SQL:
SELCT YOUR FIELD, Count(YOUR FIELD) AS SAY
FROM [YOUR TABLE]
 
236519

Zeki bey , denedim bu hatayı verdi.

Group by yapınca Tekrarlayan kayıdı tek satır gösteriyor.
Kod:
Private Sub CommandButton1_Click()
Call ConDB
sorgu = "SELECT stok , count(stok) as say   FROM liste where kod ='FAF' GROUP BY stok"
kyt.Open sorgu, bgln, 1, 1
Range("A1").CopyFromRecordset kyt
End Sub
 
Sum/Count gibi aggregate fonksiyonlar kullanıldığında GROUP BY zorunludur; hata iletisi zaten bunu belirtmiş....

Mevcut SELECT cümlesinin tek kolona düşürmesi de mantık gereğidir. Tekrarlı gelmesi için gerekli başka bir alana ihtiyacınız var ve bunu da GROUP BY tümcesine eklemeyi unutmayın.

Table structure bile paylaşamadığınız bu sorunuz için bu şekilde yardım almanız zor... Zira biraz müneccimlik gerektiriyor.

.
 
Teşekkürler zeki bey. Biryandan araştırıyordum bende. aşağıdaki kod ile saydırdım. Vba ilede Tekrarlayan sayıları merge yaptım. İhtiyacımı gördü.

İlgin için teşekkür ederim.

Kod:
Range("B8:E400").UnMerge
Range("B8:E400").ClearContents
Range("B8:E400").ClearFormats
kyt.Open "select  stok,SAYY = COUNT(*) OVER(PARTITION BY stok) from liste WHERE kod = 'FAF'    order by stok;", bgln, 1, 1
kytsay = kyt.RecordCount
Range("B8").CopyFromRecordset kyt

Dim rng As Range, xCell As Range

Dim xRows As Integer

xTitleId = "KutoolsforExcel"

Set WorkRng = Application.Selection

Set WorkRng = Range("B8:E" & 8 + kytsay)

Application.ScreenUpdating = False

Application.DisplayAlerts = False

xRows = WorkRng.Rows.Count

For Each rng In WorkRng.Columns

    For i = 1 To xRows - 1

        For j = i + 1 To xRows

            If rng.Cells(i, 1).Value <> rng.Cells(j, 1).Value Then

                Exit For

            End If

        Next

        WorkRng.Parent.Range(rng.Cells(i, 1), rng.Cells(j - 1, 1)).Merge
WorkRng.Parent.Range(rng.Cells(i, 2), rng.Cells(j - 1, 2)).Merge
        i = j - 1

    Next

Next

 

    With WorkRng.Borders
        .LineStyle = xlContinuous
        .Color = vbRed
        .Weight = xlThin
    End With
    
Application.DisplayAlerts = True

Application.ScreenUpdating = True
 
Geri
Üst