• 25-06-2021, 00:00:20
    #1
    Left join kullanıyorum. fakat çektiğim ikinci tabloda sayım yaptırıyorum ancak sayım yaparken de bir koşula göre yaptırmam gerekiyor.

    count koşulunu nasıl belirtebilirm?
  • 25-06-2021, 00:48:38
    #2
    sql sorgunu yazar mısın, toparlamaya çalışalım.
  • 25-06-2021, 00:57:08
    #3
    per adlı üyeden alıntı: mesajı görüntüle
    sql sorgunu yazar mısın, toparlamaya çalışalım.


    "Select tabloa.ID, tabloa.baslik, tabloa.status, count(*) as mesaj
    from tabloa
    left join tablob on tabloa.ID = tablob.id $wherekriter1 $wherekriter2
    group by 1,2 $sirala $limit"

    tablob'de onay sütünu var onay sütünü 1 olanları saydırmam gerekiyor sadece. 0 olanlar onaysız onları da sayıyor bu haliyle.
  • 25-06-2021, 01:03:38
    #4
    bu şekilde kullanımda iki tablonun birleşiminde ortaya çıkan tüm satırları sayıyorsun evet. elde etmen gereken tablo nasıl olmalı. her konu altında kaç mesaj olduğunu mu bulmak istiyorsun?
  • 25-06-2021, 01:04:20
    #5
    buddy adlı üyeden alıntı: mesajı görüntüle
    Left join kullanıyorum. fakat çektiğim ikinci tabloda sayım yaptırıyorum ancak sayım yaparken de bir koşula göre yaptırmam gerekiyor.

    count koşulunu nasıl belirtebilirm?
    Tam olarak nasıl bir koşul hocam?
    SELECT COUNT(*) FROM musteriler WHERE id>=5
    Bu da bir koşul, siz SQL sorgunuzu ve istediğinizi gönderirseniz bir bakalım.
  • 25-06-2021, 01:06:14
    #6
    kolay cozum
    count yanina sum ekleyebilirsin
    count tum mesajlari verir
    sum onayli mesajlari


    daha zor olarak
    count icine case eklersin
    count( case when status=0 then null else status end)
  • 25-06-2021, 01:07:43
    #7
    per adlı üyeden alıntı: mesajı görüntüle
    bu şekilde kullanımda iki tablonun birleşiminde ortaya çıkan tüm satırları sayıyorsun evet. elde etmen gereken tablo nasıl olmalı. her konu altında kaç mesaj olduğunu mu bulmak istiyorsun?
    evet konuları listelerken ek bir sütunda kaç onaylı yoruma sahipse onu gösteriyorum. dediğim gibi bu haliyle, onaylı onaysız tümünü sayıyor
  • 25-06-2021, 01:11:35
    #8
    select *, (select count(*) from tablob where id=tabloa.ID and onay=1) as mesaj from tabloa where tabloaiçin where kriterlerin... şeklinde de kullanabilirsin.
  • 25-06-2021, 01:21:29
    #9
    suleymanyaldiz adlı üyeden alıntı: mesajı görüntüle
    kolay cozum
    count yanina sum ekleyebilirsin
    count tum mesajlari verir
    sum onayli mesajlari


    daha zor olarak
    count icine case eklersin
    count( case when status=0 then null else status end)
    hocam sum(onay=1) şeklinde denedim tamamen doğru sonuçları verdi.
    fakat, hiç yorumu olmayanların yüzde 90'ında rakam yazmıyorken yine hiç yorum olmayan bazı konuların karşısında 0 yazıyor.

    ayrıca sum(onay=0) dediğimde saçmalıyor