• 11-08-2022, 13:17:38
    #1
            SELECT 
            firmalar.ad AS firma_ad,
            firmalar.id AS f_id,
            (SELECT COUNT(*) FROM kayitlar WHERE firma = f_id) as kayit,
            (SELECT COUNT(*) FROM stoklar WHERE firma = f_id) as stok,
            (SELECT COUNT(*) FROM cari WHERE firma = f_id) as cari,
            (SELECT COUNT(*) FROM musteriler WHERE firma = f_id) as musteri,
            (SELECT COUNT(*) FROM personeller WHERE firma = f_id) as personel
            FROM firmalar WHERE durum = 1


    Üstte yaptığım sorgu da altta ola çıktıyı alıyorum. Ama ben satırdaki verilerin tamamen 0 olduğu durumlarda o veriyi istemiyorum.
    Binlerde satırlık bir çıktı geliyor. Bunu php de filtrelediğim de de bu sefer sistemde yavaşlık meydana geliyor.
    if($firma['kayit']!=0 OR $firma['stok']!=0 OR $firma['cari']!=0 OR $firma['musteri']!=0 OR $firma['personel']!=0){ /*bilgiler*/ }
    şu işlemi direk sql de çözmek istiyorum nasıl yapabilirim ?
  • 11-08-2022, 21:15:20
    #2
    PhYtOnX adlı üyeden alıntı: mesajı görüntüle
            SELECT 
            firmalar.ad AS firma_ad,
            firmalar.id AS f_id,
            (SELECT COUNT(*) FROM kayitlar WHERE firma = f_id) as kayit,
            (SELECT COUNT(*) FROM stoklar WHERE firma = f_id) as stok,
            (SELECT COUNT(*) FROM cari WHERE firma = f_id) as cari,
            (SELECT COUNT(*) FROM musteriler WHERE firma = f_id) as musteri,
            (SELECT COUNT(*) FROM personeller WHERE firma = f_id) as personel
            FROM firmalar WHERE durum = 1

    Üstte yaptığım sorgu da altta ola çıktıyı alıyorum. Ama ben satırdaki verilerin tamamen 0 olduğu durumlarda o veriyi istemiyorum.
    Binlerde satırlık bir çıktı geliyor. Bunu php de filtrelediğim de de bu sefer sistemde yavaşlık meydana geliyor.
    if($firma['kayit']!=0 OR $firma['stok']!=0 OR $firma['cari']!=0 OR $firma['musteri']!=0 OR $firma['personel']!=0){ /*bilgiler*/ }
    şu işlemi direk sql de çözmek istiyorum nasıl yapabilirim ?


    Burdaki sorguların;

    (SELECT COUNT(*) FROM cari WHERE firma = f_id)

    Toplam değerlerini alırken 0 değerleri devre dışı bırakın zaten o zaman sonuçlar daralmış olacak ve tüm değerleri toplamak yerine direk sütuna gidin yani

    (SELECT COUNT(burada_toplam_aldiginiz_sutun) FROM cari WHERE firma = f_id and burada_toplam_aldiginiz_sutun!='0')

    gibi...
  • 12-08-2022, 10:13:28
    #3
    Big_Turk adlı üyeden alıntı: mesajı görüntüle
    Burdaki sorguların;

    (SELECT COUNT(*) FROM cari WHERE firma = f_id)

    Toplam değerlerini alırken 0 değerleri devre dışı bırakın zaten o zaman sonuçlar daralmış olacak ve tüm değerleri toplamak yerine direk sütuna gidin yani

    (SELECT COUNT(burada_toplam_aldiginiz_sutun) FROM cari WHERE firma = f_id and burada_toplam_aldiginiz_sutun!='0')

    gibi...

    HAVING kayit!=0 OR stok!=0 OR cari!=0 OR musteri!=0 OR personel!=0
    ile çözdüm hocam.

    Çünkü orada genel bir toplama yapmıyorum. Günlük bir tablo oluşturuyorum .
    Between kodunu eklemeyi unutmuşum buraya koyarken