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

Gruppieren nach Datum mit MIN Wert

Dieses Thema im Forum "Oracle" wurde erstellt von Tscheche, 28 Juli 2017.

  1. Tscheche

    Tscheche Benutzer

    Hallo Liebes Forum,
    nachdem mir hier bei meinem letzten Problem schon so super geholfen wurde, versuche ich mein Glück auf SQL-Rettung erneut :)

    Ich habe eine Tabelle:

    Code:
    DATUM    KOSTEN    PRODUKT    HILFSSPALTE
    03.01.2011    1639,00    A    01.01.2014
    03.01.2011    1729,00    B    01.01.2015
    04.01.2011    1654,00    X    01.01.2014
    04.01.2011    1735,00    A    01.01.2015
    05.01.2011    1672,00    B    01.01.2014
    05.01.2011    1760,00    X    01.01.2015
    06.01.2011    1691,00    A    01.01.2014
    06.01.2011    1782,00    B    01.01.2015
    07.01.2011    1687,00    X    01.01.2014
    07.01.2011    1779,00    A    01.01.2015
    10.01.2011    1648,00    B    01.01.2014
    10.01.2011    1744,00    X    01.01.2015
    11.01.2011    1655,00    A    01.01.2014
    11.01.2011    1751,00    B    01.01.2015
    12.01.2011    1650,00    X    01.01.2014
    12.01.2011    1746,00    A    01.01.2015
    13.01.2011    1653,00    B    01.01.2014
    13.01.2011    1746,00    X    01.01.2015
    
    Spalte1: DATUM würde an dieser Stelle dem Lieferdatum entsprechen.
    Spalte2: KOSTEN des jeweiligen Produktes
    Spalte3: PRODUKT - spricht für sich selbst denke ich :)
    Spalte4: HILFSSPALTE: Diese dient nur für die Abfrage - hier Steht das Datum wann das Produkt vom Einkauf beschafft wurde.

    Ich schaffe die Abfrage so wie die Tabelle oben nun dargestellt ist, aber habe noch 2 Bedingungen die ich nicht abgebildet bekomme.
    Nun würde ich gerne mit einer Abfrage mir diese Tabelle anzeigen lassen mit folgender Bedingung:

    Groupiert soll nach Dem Datum der ersten Spalte (DATUM) - Also jeder Tag soll nur einmal angezeigt werden.

    nun wird es kompliziert:
    Unabhängig vom PRODUKT sollen mir die KOSTEN vom kleinsten Datum der HILFSSPALTE angezeigt werden.

    Sodass ich dann am Ende jeden Tag nur einmal sehe mit den KOSTEN des frühesten Einkaufsdatum der HILFSSPALTE.

    Hoffe man konnte das verstehen und jemand kennt eine Lösung.
    Braucht ihr die aktuelle SQL Abfrage auch?

    Danke
     
  2. ukulele

    ukulele Datenbank-Guru

    Wie kann das Produkt den ausgeliefert werden ohne das es vom Einkauf bereits beschafft wurde?

    Ich bin mir ansonsten nicht sicher aber vielleicht so:
    Code:
    SELECT   t.DATUM,
         sum(t.KOSTEN) AS KOSTEN,
         t.HILFSSPALTE
    FROM   (
    
    SELECT   RANK() OVER (PARTITION BY DATUM ORDER BY HILFSSPALTE DESC) AS zeile,
         DATUM,
         KOSTEN,
         PRODUKT,
         HILFSSPALTE
    FROM   tabelle
    
         ) t
    WHERE   t.zeile = 1
    GROUP BY t.DATUM,t.HILFSSPALTE
     
  3. Tscheche

    Tscheche Benutzer

    Danke. Ich werde die Abfrage einmal testen. :)

    Ja das ist etwas komplizierter in der Praxis, deswegen habe ich es mit Einkaufsdatum beschrieben.
    Wollte nicht die kompletten Details aus dem Prozess erklären.
    Prinzipiell ist das eine Lieferung die Rückwirkend erfüllt wird ;) Also keine Direkte physische Erfüllung.
     
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