none
SQL Yardım RRS feed

  • Soru

  • Merhaba;

    aşağıdaki bir MYSQL kodu ile resimde görünen gibi toplam kayıt sayısından her satırsa bir azalır şekilde bir sorgu nasıl yapabilirim.

    select   cektanzim  from detail_2019  where cektanzim >0


    mehmet bastem

    22 Kasım 2019 Cuma 19:56

Yanıtlar

  • Pencere fonksiyonlarını kullanabilirsiniz.

    https://dev.mysql.com/doc/refman/8.0/en/window-functions-usage.html

    Tabloyu bilemediğim için tam sorguyu yazamıyorum, id diye sıralama imkanı olan bir kolon varsa.

    SELECT
       cektanzim,
       (
          COUNT(*) OVER(
       ORDER BY
          id ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING )
       ) as kalan
    FROM
       detail_2019 
    ORDER BY
       id
     

    şeklinde yazılabilir, mysql pek bilmediğimden mssql e göre yazdım, doküman yukarıda aradığınız bu ise düzenlersiniz.

    Kalan kolonu için yazdığımız şeyin anlamı,  "veri id ye göre sıralandığında bu kolondan itibaren olanların adedini al"


    www.cihanyakar.com


    23 Kasım 2019 Cumartesi 09:20

Tüm Yanıtlar

  • ORDER BY DESC ile şu şekilde olmalı;

    select cektanzim from detail_2019 where cektanzim > 0 order by kalanevrak desc

    DESC: azalan

    ASC: artan


    TR| Sorunuzun yanıtı bu ise "Yanıt Olarak Öner" olarak işaretleyin, eğer faydalı bir yorum ise "Oy Ver"erek forumun işleyişine katkıda bulunabilirsiniz. EN| If this is the answer to your problem, mark "Propose as Answer" and if it is helpful, you can contribute to the workig of the forum by "Voting".

    22 Kasım 2019 Cuma 23:12
  • Kalanevrak diye bir sütün yok. Bu ToplamEvrak+1 sayısından satırnosunu çıkarılmasından bulunacak. Benim yazdığım SQL ile sizinki arasında fark yok. 

    mehmet bastem

    23 Kasım 2019 Cumartesi 04:51
  • Pencere fonksiyonlarını kullanabilirsiniz.

    https://dev.mysql.com/doc/refman/8.0/en/window-functions-usage.html

    Tabloyu bilemediğim için tam sorguyu yazamıyorum, id diye sıralama imkanı olan bir kolon varsa.

    SELECT
       cektanzim,
       (
          COUNT(*) OVER(
       ORDER BY
          id ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING )
       ) as kalan
    FROM
       detail_2019 
    ORDER BY
       id
     

    şeklinde yazılabilir, mysql pek bilmediğimden mssql e göre yazdım, doküman yukarıda aradığınız bu ise düzenlersiniz.

    Kalan kolonu için yazdığımız şeyin anlamı,  "veri id ye göre sıralandığında bu kolondan itibaren olanların adedini al"


    www.cihanyakar.com


    23 Kasım 2019 Cumartesi 09:20