Group by ile toplama 2 seçenek
Merhaba, Aşağıda ki sorgu ile "stok_urun" aynı olan verileri toplayıp listeleyebiliyorum. Fakat "stok_nerede" satırım farklı olabiliyor. Bunuda içine katarak nasıl listeleyebilirim.
Aşağı daki veritabanın göre sonucum bu şekilde olmasını istiyorum.
Stok Urun | Stok Miktar | Stok Nerede |
---|---|---|
23 | 30 | 1 |
26 | 156 | 1 |
27 | 10 | 2 |
22 | 27 | 1 |
$sorgu = $db->prepare("SELECT SUM(stok_miktar) as stok_miktar,stok_urun,stok_nerede,urunler.urun_ad,urunler.urun_renk FROM stok JOIN urunler ON urunler.urun_id=stok.stok_urun GROUP BY stok_urun");
$sorgu->execute();
$stoksorgula = $sorgu->fetchAll(PDO::FETCH_ASSOC);
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
Bu sorguyu phpmyadmin ile çalıştırıp kontrol etmeni öneririm hatanı gördüğün zaman daha verimli olur bence.
SUM, COUNT
ile diğer sütunları kullandığın zaman GROUP BY
sonrasına SUM, COUNT
dışındaki diğer sütunları da eklemen gerekir.
JOIN
kullanıyorsan birleştirdiğin ikinci tablonun da sütunlarını eklemelisin.
SELECT SUM(stok_miktar) as stok_miktar,
stok_urun,
stok_nerede,
urunler.urun_ad,
urunler.urun_renk FROM stok
JOIN urunler ON urunler.urun_id=stok.stok_urun
GROUP BY stok_urun, stok_nerede, urunler.urun_ad, urunler.urun_renk