SQL Abfrageproblem mit Gruppierung von mehreren Spalten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SQL Abfrageproblem mit Gruppierung von mehreren Spalten

    Hi all,

    ich habe eine Tabelle mit Netzwerkgeräten. Mehrmals täglich werden Daten hinzugefügt.

    Ein Netzwerkgerät (Spalte:sw_name) kommt in nur einer Infrastruktur (Spalte fab_name) vor. Es gibt einen timestamp zu jedem Discovervorgang der für alle Geräte einer Infrastruktur gleich ist.

    Jede Infrastruktur hat einen anderen timestamp.

    Hier ein Beispiel der Tabelle:
    timestamp;fab_name;sw_name
    2011.06.18 12:00; fabric1;switch1
    2011.06.18 12:00; fabric1;switch2
    2011.06.18 12:00; fabric1;switch3

    2011.06.15 12:07; fabric1;switch1
    2011.06.15 12:07; fabric1;switch2

    2011.06.18 13:00; fabric2;switchA
    2011.06.18 13:00; fabric2;switchB
    2011.06.18 13:00; fabric2;switchC
    2011.06.18 13:00; fabric2;switchD

    2011.06.15 13:04; fabric2;switchA
    2011.06.15 13:04; fabric2;switchB
    2011.06.15 13:04; fabric2;switchC
    2011.06.18 13:00; fabric2;switchD
    2011.06.18 13:00; fabric2;switchE

    Ich möchte folgende Liste bekommen
    "Last Discover Date" "Infrastructure" "Number of switches"
    2011.06.18 12:00 fabric1 3
    2011.06.18 13:00 fabric2 4

    Es soll zu jeder Infrastruktur die aktuellsten Daten angezeigt werden. Wichtig ist für mich die richtige Anzahl der Switche zu den letzten Discover Zeitpunkt sowie der letzte Discover Zeitpunkt.

    Mit folgendem Select bekomme ich die letzten Discoverzeiten je Infrastruktur raus:
    SELECT max(timestamp) as "Last Discover", fab_name FROM `tbl_switchinfo` group by fab_name

    Mit diesem Select bekomme ich alle Switche in der Tabelle je Infrastruktur raus:
    select fab_name, count(*),fab_name from tbl_switchinfo group by fab_name

    Aber ich will die Menge einschränken auf den letzten Discoverzeitpunkt!
    Ich bekomme diese beiden Abfragen einfach nicht zusammen...

    Gruss Andreas

  • #2
    Nach weiteren suchen habe ich eine Lösung gefunden...

    select fab_name, max(timestamp) as dat , count(distinct sw_name) as anzSwitche from tbl_switchinfo group by fab_name order by fab_name

    Sorry für diesen Post hier.

    Andreas

    Kommentar


    • #3
      Da du die Lösung gepostet hast, ist alles paletti.

      Kommentar

      Lädt...
      X