Pierre: Umgang mit gleichen Feldinhalten

Hallo

Hänge mal wieder an einem wahrscheinlich nicht allzu grossen Problem fest.
In meinem Beispiel möchte ich Wahlanteile auslesen und in einer HTML-Tabelle mit Balkendiagrammen darstellen.
 Meine Felder haben folgende Struktur:
 FDP: 1999: 19,9
 FDP: 2003: 16,8
 CVP: 1999: 15,9
 CVP: 2003: 14,4

Als erstes möchte ich zählen, wie viele verschiedene Jahrzahlen existieren und als zweites möchte ich, solange die gleiche Partei erscheint, diese nur einmal auslesen.

Kann mir jemand helfen?

Besten Dank.
 Pierre

  1. Hello,

    In meinem Beispiel möchte ich Wahlanteile auslesen und in einer HTML-Tabelle mit Balkendiagrammen darstellen.
     Meine Felder haben folgende Struktur:

    Bei einem Feld spricht man von Format und nicht von Struktur, denn ein feld sollte nach der Mormalisierung der Tabelle nur noch einwertige Eigenschaften besitzen.

    Die Satzstruktur ist dann also

    Partei  Jahr  Ergebnis
    ------ ------ --------
      FDP   1999  19,9
      FDP   2003  16,8
      CVP   1999  15,9
      CVP   2003  14,4

    Habe ich das richtig verstanden?

    Hast Du eine MySQL-Datenbank oder irgend eine andere SQL-Datenbank oder liegen die Tabellen in Textdateien?

    Grüße

    Tom

    1. Partei  Jahr  Ergebnis


      FDP   1999  19,9
        FDP   2003  16,8
        CVP   1999  15,9
        CVP   2003  14,4

      Habe ich das richtig verstanden?

      Absolut, diese Auflistung zeigt die Ausgabe nach der Abfrage aus der mySQL-Datenbank. Die Parteien hab ich sogar in einer sep. Tabelle abgespeichert. Die Sache mit dem Normalisieren versuch ich immer noch zu lernen, ebenso die richten Worte dafür zu brauchen.
      Nun suche ich nach einer mySQL-Abfrage, die mir fürs Feld Jahr den Wert 2 liefert, da es zwei verschiedene Zahlen gibt. Das möchte ich später für den Rowspan-Befehl in meiner Tabelle nutzen. Als zweites möchte ich die Abfrage so machen, dass die Parteien die hintereinander ausgelesen werden nur 1mal erscheinen, falls das überhaupt möglich ist.

      1. Hallo,

        Nun suche ich nach einer mySQL-Abfrage, die mir fürs Feld Jahr den Wert 2 liefert, da es zwei verschiedene Zahlen gibt. Das möchte ich später für den Rowspan-Befehl in meiner Tabelle nutzen.

        Für solche Arten von Abfragen gibt es DISTINCT. Damit werden Duplikate aus dem Abfrageergebnis entfernt.
        SELECT DISTISTINCT spalte FROM tabelle

        liefert z.B. alle in der Tabelle vorkommendenen Werte der angegebenen Spalte.

        Als zweites möchte ich die Abfrage so machen, dass die Parteien die hintereinander ausgelesen werden nur 1mal erscheinen, falls das überhaupt möglich ist.

        Das ist nicht mit einer Abfrage machbar, da die ABfrageergebnisse sich vollständig unterscheiden.
        Bei dieser Abfrage willst Du sortieren. Das erreichst Du durch den Einsatz von ORDER BY.

        Willst Du es dennoch mit nur einer Abfrage erledigen, so mußt Du auf externe Programmierlogik zurückgreifen.

        Achja, noch etwas: Näheres zur Formulierung von Abfragen unter MySQL findest Du übrigens unter http://www.mysql.com/doc/en/SELECT.html.

        Grüße
          Klaus

        1. Danke Klaus, das hilft weiter.

          Distinct hilft mir weiter, und das andere Problem kann ich auch in der Schleife mit php lösen, wollte nur Nachfragen, obs vielleicht einen einfacheren Weg gibt.

          Pierre