• 25-05-2017, 20:12:41
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba;
    Çok sayıda işletmenin, kendi müşterilerine verdiği ürünleri takip edeceği bir sistem yazıyorum.

    isletmeler | musteriler | urunler isimli 3 adet tablom mevcut.



    isletmeler
    isletmeID | isletmeAd | isletmeKodu

    musteriler
    musteriID | musteriAd | musteriIsletmeID

    urunler
    urunID | urunTarihi | urunMusteriID


    Tek bir sorgu ile bir işletmeye ait ürünleri sayıp, aynı zamanda da bu müşterileri ürün tarihi en yakın olana göre sıralamam gerekli.

    SELECT musteriler.musteriAd, COUNT(urunler.urunMusteriID) AS UrunAdet FROM urunler
    LEFT JOIN musteriler ON urunler.urunMusteriID= musteriler.musteriID
    WHERE musteriler.musteriIsletmeID ='1'
    GROUP BY musteriAd
    ORDER BY 1 DESC;


    Şeklinde bir sorgu ile müşterileri ve ürün adetlerini alabiliyorum fakat, iş "1 nolu işletmeye ait müşterileri ürün tarihi en yakına göre sıralamak" konusuna gelince tıkandım.

    Nasıl tek sorgu ile bu işlemi yapabilirim ?

    Yardımlarınız için şimdiden teşekkür ederim.
  • 27-05-2017, 12:27:05
    #2
    EDİT : Çözdüm. Lazım olur ise çözümü aşağıda yazıyorum.

    SELECT
    	musteriler.musteriAd,
        COUNT(urunler.urunMusteriID) AS UrunAdet,
        MIN(urunTarihi) AS SonUrun
    FROM urunler
    INNER JOIN musteriler ON urunler.urunMusteriID = musteriler.musteriID
    WHERE musteriler.musteriIsletmeID = '1'
    AND urunler.urunPasif != '1'
    GROUP BY musteriAd
    ORDER BY SonUrun ASC;
    Sonuç: