Ergebnis 1 bis 6 von 6

Thema: select nächst kleiner Eintrag

  1. #1
    TP-Specialist Avatar von the0bone
    Registriert seit
    Mar 2001
    Ort
    NDS
    Beiträge
    4.271

    select nächst kleiner Eintrag

    Hallo TP,
    ich hab ein Problem mit einem SQL Statement. Ich hab nämlich überhaupt keine Ahnung, wie ich starten soll
    (Das macht es mir auch schwer bei Google oder hier was zu finden).

    Ich habe eine Tabelle
    Teilenummer Preis Datum
    abc 10,50 201101
    abc 11,00 201105
    bcd 5,39 201101


    Nun möchte ich diese Tabelle abfragen. Und zwar habe ich ein Datum, zu dem ich den gültigen Preis (also den mit dem nächst kleinerem oder gleichem Datum) für alle Teilenummern haben möchte.
    Ich hab es schon mit GROUP BY und MAX() versucht, komme aber nicht weiter.

    Ergebnis soll so aussehen:
    WHERE Datum <= 201102
    Teilenummer Preis Datum
    abc 10,50 201101
    bcd 5,39 201101


    WHERE Datum <= 201105
    Teilenummer Preis Datum
    abc 11,00 201105
    bcd 5,39 201101


    Danke wer auch immer eine Idee hat!
    the0bone

    Wissen ist Macht, nichts Wissen macht nichts! Doch auch auch wenn man es nicht besser weiss, sollte man beim Erstellen einer Webseite auf Frames und Tabellen verzichten.

  2. #2
    TP-Specialist Avatar von the0bone
    Registriert seit
    Mar 2001
    Ort
    NDS
    Beiträge
    4.271
    Ich glaub ich habs

    Code:
    SELECT Teilenummer
              ,Preis
              ,max(DISTINCT Datum) as Datum
    FROM Tabelle
    WHERE Datum <= 201102
    GROUP BY Teilenummer, Preis
    the0bone

    Wissen ist Macht, nichts Wissen macht nichts! Doch auch auch wenn man es nicht besser weiss, sollte man beim Erstellen einer Webseite auf Frames und Tabellen verzichten.

  3. #3
    TP-Specialist Avatar von the0bone
    Registriert seit
    Mar 2001
    Ort
    NDS
    Beiträge
    4.271
    Nein Doch nicht! Da der Preis unterschiedlich ist, zeigt er trotzdem beide Felder an...
    the0bone

    Wissen ist Macht, nichts Wissen macht nichts! Doch auch auch wenn man es nicht besser weiss, sollte man beim Erstellen einer Webseite auf Frames und Tabellen verzichten.

  4. #4
    TP-Specialist Avatar von the0bone
    Registriert seit
    Mar 2001
    Ort
    NDS
    Beiträge
    4.271
    Next try in meinem Selbstgespräch...

    Ich glaub so gehts.
    PHP-Code:
    SELECT Teilenummer
          
    ,Preis
          
    ,Datum
      FROM Tabelle
      WHERE Datum IN 
    (SELECT TOP(1Datum FROM Tabelle WHERE Datum <= 201106 ORDER BY Datum desc
    Ich nutze eine abhängige Unterabfrage auf die selbe Tabelle, welche nur einen Rückgabewert hat.
    In meinen ersten Tests schein es zu gehen. Nun geht es an die grosse Datenbank...
    the0bone

    Wissen ist Macht, nichts Wissen macht nichts! Doch auch auch wenn man es nicht besser weiss, sollte man beim Erstellen einer Webseite auf Frames und Tabellen verzichten.

  5. #5
    TP-Specialist Avatar von the0bone
    Registriert seit
    Mar 2001
    Ort
    NDS
    Beiträge
    4.271
    OK, auch falsch!
    Da die zweite Abfrage nur das Grösste Datum sucht, wendet es dieses auch beim Durchlauf der bcd Teilenummern an und da diese dann nicht gleich diesem Datum ist, wird diese nicht ausgegeben!
    the0bone

    Wissen ist Macht, nichts Wissen macht nichts! Doch auch auch wenn man es nicht besser weiss, sollte man beim Erstellen einer Webseite auf Frames und Tabellen verzichten.

  6. #6
    TP-Specialist Avatar von the0bone
    Registriert seit
    Mar 2001
    Ort
    NDS
    Beiträge
    4.271
    Nun aber... und man bemerke die Entwicklungskurve :-)

    PHP-Code:
    SELECT one.Teilenummer
          
    ,one.Preis
          
    ,one.Datum
      FROM Tabelle 
    as one
      WHERE one
    .Datum IN (SELECT TOP(1two.Datum FROM Tabelle as two WHERE two.Datum <= 201106 AND two.Teilenummer one.Teilenummer ORDER BY two.Teilenummer desc)
      
    ORDER BY one.Datum desc 
    Ich war ganz nah dran! Druch das zuweisen der Namen one und two für die beiden Abfragen, ist es möglich die Ergebnisse in der UNterabfrage zu trennen!
    the0bone

    Wissen ist Macht, nichts Wissen macht nichts! Doch auch auch wenn man es nicht besser weiss, sollte man beim Erstellen einer Webseite auf Frames und Tabellen verzichten.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. [MySQL] mySQL (PHP) - Select in Select optimieren
    Von Vitamin-R im Forum Traum-Dynamik
    Antworten: 4
    Letzter Beitrag: 05.01.2009, 19:37
  2. Eintrag im Access.log
    Von kami im Forum Traum-Dynamik
    Antworten: 3
    Letzter Beitrag: 17.03.2007, 19:15
  3. Antworten: 2
    Letzter Beitrag: 22.07.2006, 21:57
  4. Select-Auswahl nach select-Auswahl erzeugen
    Von Schneeschaufel im Forum HTML & CSS
    Antworten: 3
    Letzter Beitrag: 21.11.2004, 18:46
  5. zwingender <br> eintrag
    Von armando im Forum Traum-Dynamik
    Antworten: 9
    Letzter Beitrag: 12.11.2002, 08:03

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51