Doğru Cevap
-
Merhaba, CASE WHEN kullanarak yapabilirsin. Karışık gelebilir ama pek bi şansın yok. Tek sorgu ile yapacaksan en iyisi bu...
SELECT h.sicil, pl.adsoyad, (CASE WHEN SUM(puantoplam.puan) IS NOT NULL THEN SUM(puantoplam.puan) ELSE 0 END) AS gelenoneri, (CASE WHEN puanonerivermek.onerivermek IS NOT NULL THEN puanonerivermek.onerivermek ELSE 0 END) AS onerivermek FROM hareket AS h LEFT OUTER JOIN personellist AS pl ON (h.sicil = pl.sicil) LEFT OUTER JOIN puanlar AS puantoplam ON (h.neden = puantoplam.id) LEFT OUTER JOIN ( SELECT h.sicil, (CASE WHEN SUM(puantoplam.puan) IS NOT NULL THEN SUM(puantoplam.puan) ELSE 0 END) AS onerivermek FROM hareket AS h LEFT OUTER JOIN puanlar AS puantoplam ON (h.neden = puantoplam.id) WHERE h.neden = '120' GROUP BY h.sicil ) AS puanonerivermek ON (h.sicil = puanonerivermek.sicil) GROUP BY h.sicil order by gelenoneri desc
-
Atalay5757
Yanlışlıkla doğru cevabı işaretledim. Ve gerçekten baya karaşık geldi açıkçası ben nereye ne yazacağımı anlamadım.10 yıl önce yazılmış -
kacmaz
Karışık gibi ama aslında değil. SQL yapısına hakimsen değişkenlerin tümünü kendi tablolarındaki isimler ile değiştir. olmaz ise örnek tablo ve istediğin çıktıyı gönderirsen yardımcı olurum.
bahadir.kacmaz@gmail.com10 yıl önce yazılmış
-
Cevaplar
-
order by ip ASC dersen listelemis olursun.
-
Atalay5757
Ama bu baştan sona hepsini listeler. Benim dediğim çok farklı. Örneğin ali ile hasanın ip adresleri aynı ve mehmet ile ahmet in ip adresleri aynı. Sorgumu çalıştırdığımda çıktı şu şekilde olmalı.
İpsi aynı olan kullanıcılar:
ali ve hasan : ip adresi
mehmet ve ahmet : ip adresi
Bana böyle bir sorgu gerekli.10 yıl önce yazılmış
-