Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

MAX Wert eines Monats Filtern

Dieses Thema im Forum "Oracle" wurde erstellt von Cr4m0, 7 November 2013.

  1. Cr4m0

    Cr4m0 Benutzer

    Hi,
    habe folgendes Problem:
    für jeden tag des jahres habe ich meinen umsatz dokumentiert:
    Datum - Umsatz
    20130101 - 300
    20130102 - 200
    .
    .
    .
    20130201 - 400
    20130202 - 500
    .
    .
    .
    nun möchte ich für jeden monat den MAX Umsatz rausfiltern. Komme irgendwie nicht weiter.
    Vielen Dank. Benjamin
     
  2. Cr4m0

    Cr4m0 Benutzer

    ich habe nun folgende anweisung:
    SELECT MAX(Umsatz), to_char(Datum, '????') Moth FROM tabelle group by to_char(datum, '????');

    nutze ich die group by funktion wenn die daten der spalte datum aus ziffern bestehen?
     
  3. ukulele

    ukulele Datenbank-Guru

    Prinzipiell ist GROUP BY richtig. Schwer wird es, wenn das Datum des Tages an dem der Umsatz dem Monatsmaximum entspricht noch mit angezeigt werden soll. Das ist vor allem nicht in jeder SQL DB gleich zu lösen, ich hab mich mal versucht:
    Code:
    SELECT    t1.Jahr,
            t1.Monat,
            t2.Datum,
            t1.Umsatz
    FROM    (    SELECT    datepart(year,Datum) AS Jahr,
                        datepart(month,Datum) AS Monat,
                        max(Umsatz) AS Umsatz
                FROM    tabelle
                GROUP BY datepart(month,Datum) ) t1
    LEFT JOIN (    SELECT    max(Datum) AS Datum
                FROM    tabelle
                WHERE    datepart(year,Datum) = t1.Jahr
                AND        datepart(month,Datum) = t1.Monat
                AND        Umsatz = t1.Umsatz ) t2
    ON        t2.Umsatz = t1.Umsatz
    bzw.

    Code:
    SELECT   t1.Jahr,
         t1.Monat,
         (   SELECT   max(Datum) AS Datum
           FROM   tabelle
           WHERE   datepart(year,Datum) = t1.Jahr
           AND     datepart(month,Datum) = t1.Monat
           AND     Umsatz = t1.Umsatz ) AS Datum,
         t1.Umsatz
    FROM   (   SELECT   datepart(year,Datum) AS Jahr,
               datepart(month,Datum) AS Monat,
               max(Umsatz) AS Umsatz
           FROM   tabelle
           GROUP BY datepart(month,Datum) ) t1
    
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden