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

SELECT: den aktuellsten eintrag für jede id, wobei zeit und datum getrennt sind

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von DesertCrawler, 3 Februar 2016.

  1. DesertCrawler

    DesertCrawler Neuer Benutzer

    Hallo,
    Ich habe folgende Abfrage:

    SELECT * FROM `tablename` WHERE time IN (SELECT MAX(time) FROM `tablename` WHERE date IN (SELECT MAX(date) FROM `tablename)) GROUB BY id

    Ich möchte den letztmaligen eintrag für jede id in der Tabelle ausgeben. Doch irgendwie funktioniert das nicht.
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Dein SQL ist komisch, select id, max(date) from <table> group by id sollte schon zielführend sein. Aber Dein 'zeit und datum getrennt' scheint ein sicherer Hinweis auf ein vollständig verkacktes Design zu sein. In dem Falle kommst Du mit der sachgerechten Entsorgung schneller zum Ziel.
     
  3. DesertCrawler

    DesertCrawler Neuer Benutzer

    Ist leider so designed
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Dann wirf es weg und mach es neu. Oder kündige.
     
  5. ukulele

    ukulele Datenbank-Guru

    Code:
    SELECT    tabelle.*
    FROM    tabelle
    INNER JOIN (
    
    SELECT    id,
            max(cast(datum AS DATETIME) + cast(zeit AS DATETIME)) AS datumzeit
    FROM    tabelle
    GROUP BY id
    
            ) t
    ON        cast(tabelle.datum AS DATETIME) + cast(tabelle.zeit AS DATETIME) = t.datumzeit
     
  6. DesertCrawler

    DesertCrawler Neuer Benutzer

    Danke, aber ich bin schon dem Rat von akretschmr gefolgt
     
    akretschmer gefällt das.
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