Announcement

Collapse
No announcement yet.

Preis zu aktuellstem Datum

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Preis zu aktuellstem Datum

    Hallo,
    ich habe zwei Tabellen. In der einen sind Produkte abgelegt, in der anderen
    Preis zu den Produkten. Dabei ist es so, dass sich in der Preistabelle zu
    jedem Produkt der aktuelle und die alten Preise befinden.

    produktID | produkt
    ----------+---------+
    1 | Milch
    2 | Kaffee



    ID | preis | produktID | datum
    ---------+-------+------------+----------
    1 | 0.55 | 1 | 2007-06-11
    2 | 0.66 | 1 | 2007-09-04
    3 | 3.29 | 2 | 2007-07-28
    4 | 2.99 | 2 | 2007-09-26
    Gesucht: Der aktuelle Preis der Produkte. Also:

    produktID | produkt | preis | datum
    ----------+---------+-------+-------------
    1 | Milch | 0.66 | 2007-09-04
    2 | Kaffee | 2.99 | 2007-09-26
    Mein erster Ansatz:

    SELECT P.produktID , P.produkt, PR.preis , MAX(PR.datum)
    FROM preis_produkt P , preis_preise PR
    WHERE PR.produktID = P.produktID
    GROUP BY P.ID
    ORDER BY P.produkt

    Leider liefert das aktuellste Datum und irgendeinen Preis, aber nicht zwingend den der zum Datum gehört.

    Es sind meine ersten Geversuche mit Subqueries - ich tue mich etwas schwer und würde mich über gute Ratschläge freuen.


    Gruß
    Matthias

  • #2
    Du verbindest auch den ersten Datensatz mit dem höchsten Datum, anstatt den Datensatz mit dem höchsten Datum zu nehmen
    [highlight=sql]SELECT
    P.produktID , P.produkt, PR.preis , PR.datum
    FROM
    preis_produkt P
    join preis_preise PR on PR.produktID = P.produktID
    GROUP BY
    P.ID
    ORDER BY
    PR.Datum, P.produkt
    [/highlight]

    Comment


    • #3
      SELECT P.produktID , P.produkt, PR.preis , PR.datum
      FROM preis_produkt P , preis_preise PR
      WHERE PR.produktID = P.produktID
      And Pr.Datum = ( select Max(Datum) from preis_preise where p.produktID=preis_preise.produkt.id)
      docendo discimus

      Comment


      • #4
        Juhu, danke für die schnelle Hilfe.

        Comment

        Working...
        X