Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Aus zwei Tabellen, Ergebnistabelle(Kreuz) erstellen?

  1. #1
    ciedan
    Gast

    Aus zwei Tabellen, Ergebnistabelle(Kreuz) erstellen?

    Mahlzeit,

    ich weiss der Threadtitel gibt nicht viel her, aber ich weiss nicht wie ich es besser beschreiben soll .

    Ich habe die folgenden zwei Tabellen:
    Code:
    Spieler:
    Pass | Name | Vorname | Telefon | Addresse
    055  | Dani |  Alex   |   255   | Muster
    088  | Maxi | Muster  | 244778  | Irgendwo
    012  |Hansi | Muster  | 255477  | Nochmal irgendwas
    
    Ergebnis:
    Spieler_weiss|Spieler_Schwarz|Ergebnis|Runde
    055          | 088           | 1      | 1
    088          | 012           | 0      | 2
    012          | 055           | 1      | 3
    Um daraus eine Ausgabe der einzelnen Runden zu bekommen reicht ja eine doppelte Inner Join Verknüpfung:
    Code:
    SELECT  c.Spieler_weiss AS Pass1, a.Name AS
    Spielerweiss, a.Vorname AS vora, c.Spieler_Schwarz AS Pass2, b.Name AS
    Spielerschwarz, b.Vorname AS vorb, c.Ergebnis as Erg
    FROM Ergebnis c
    join Spieler a ON  c.Spieler_weiss = a.Pass
    join Spieler b on c.Spieler_Schwarz = b.Pass 
    where c.Runde='2';
    Soweit so gut

    Jetzt möchte ich, aber auch eine Kreuztabelle erstellen, aber ich komm nicht auf den Ansatz um sie zu erstellen
    Natürlich mit PHP, aber ich weiss nicht wie ich sie sortiert und vorallem ohne Verschiebung der Ergebnisse hinbekomme. So will ich sie am Ende haben(mit Namen natürlich aber hab ich jetzt mal wegelassen):
    Code:
          | 012 | 055 | 088 | Summe
    012   | XXX |  1  | 1   | 2
    055   | 0   | xxx | 1   | 1
    088   | 0   | 0   | xxx | 0
    Geht das überhaupt? Kann mir einer ein paar Tips geben, ich nehm auch gerne gute RTFM-Links.

    Bis denn
    ciedan

  2. #2
    Registrierter Benutzer
    Registriert seit
    22.06.1999
    Beiträge
    677
    Das sollte eigentlcih gehen, ween Du die Ergebnistabelle mit sich selber verknüpfts, aber ohne Join-Bedingung, also einfach nur SELECT ... FROM tabelle1, tabelle2.

  3. #3
    Registrierter Benutzer
    Registriert seit
    27.12.2002
    Ort
    Matrix
    Beiträge
    194
    Zitat Zitat von ciedan Beitrag anzeigen
    Geht das überhaupt? Kann mir einer ein paar Tips geben, ich nehm auch gerne gute RTFM-Links.
    nein, das geht so ohne weiteres nicht, da sich die anzahl der spalten in abhängigkeit der anzahl der zeilen ändert. für eines fest anzahl zeilen kein problem mit subselects oder pivot-query.
    ich sehe keine andere möglichkeit als die spalten einzeln zu generieren und in der ausgabe zusammenzusetzen.

    -j

  4. #4
    Registrierter Benutzer
    Registriert seit
    15.10.2005
    Ort
    Franken
    Beiträge
    362
    Interessante Aufgabenstellung, da werd ich mal ein wenig drüber nachdenken, so auf anhieb fällt mir auch nix ein.

    Vielleicht wenn man vorher die Anzahl der Spalten bestimmt?
    Dank der Rekursion kann ich IF-Schleifen bauen.

    In neuem Glanz: www.turbohummel.de

  5. #5
    ciedan
    Gast
    Mahlzeit,
    Zitat Zitat von Jasper Beitrag anzeigen
    für eines fest anzahl zeilen kein problem mit subselects oder pivot-query.
    ich sehe keine andere möglichkeit als die spalten einzeln zu generieren und in der ausgabe zusammenzusetzen.

    -j
    danke für den Hinweis, werd ich mir mal subselects und pivot-querys anschauen. Da ja beim Beginn des Turniers feststeht, wie viele Runden (Spalten) und Spieler es gibt kann ich es dann vielleicht manuell anpassen.

    bis denn
    ciedan

  6. #6
    Registrierter Benutzer
    Registriert seit
    22.06.1999
    Beiträge
    677
    Oh sorry, jetzt sehe ich, dass die Inhalte als Spaltenbeziechner (Attribute) zurückgegeben werden und ganz andere Daten als Spaltenwerte. Das geht natürlich so allgemein nicht mit SQL (es sei denn Du verwendest PL/[pg]SQL).

    Warum selektierst Du dir die Daten nicht einfach und baust die Kreuztabelle in deiner Host-Sprache zusammen?

Lesezeichen

Berechtigungen

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