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

Fußballtabelle

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von Ivan_ors, 24 März 2020.

  1. Ivan_ors

    Ivan_ors Benutzer

    Hallo

    Ich arbeite an einem Schulprojekt und brauche etwas Hilfe.
    Ich möchte eine "Fußball App" erstellen

    Vorgabe:
    4 Tabellen

    Idee:
    Ausgabe:
    Fußballtabelle: Vereinsname, Spiele, Siege, Unentschieden, Niederlage, Punkte, Tore, Gegentore, Tordifferenz
    Über den Verein: Logo, Name, Gründung, Trainer, Stadion, Stadt
    Spiel: Spieltag, Heimteam, Auswärtsteam, ToreHeimteam, ToreAuswärtsteam, Datum, Stadion
    Über den Trainer: Name, Nationalität , Geburtstag, Amtsbegin, Verein
    Über das Stadion: Stadt, Stadionname, Adresse, Verin

    Ich bin gerade am entwerfen des Cheng ERDs
    Und habe bis jetzt:

    Stadion: Stadt, Stadionname, Adresse
    Verein: Vereinsname, Gründungsdatum, Logo
    Trainer: Name, Nationalität , Geburtstag, Amtsbegin
    Spiel: Heimmanschaft, Gastmanschaft (Was man vielleicht mit Verein verbinden kann), ToreHeimmanschaft, ToreGastmanschaft, Datum, Spieltag


    Ich würde mich sehr über Hilfe freuen.
    SELECT-Befehle
    Denkanstöße
    Tipps alles ist Willkommen Danke im Vorhinein !
     
  2. akretschmer

    akretschmer Datenbank-Guru

    • belese Dich über referentielle Integrität (RI)
    • nutze RI
    • informiere Dich über Datentypen
    • nutze korrekte Datentypen

    Trainer z.B. einem Verein zuordnen, Trainer können aber auch den Verein wechseln. Ein Trainer kann vermutlich nicht gleichzeitig 2 oder mehr Vereine trainieren.
     
    Ivan_ors gefällt das.
  3. Walter

    Walter Administrator Mitarbeiter

    Bin kein Fussballer, aber ja, das geht bei den kleinen Hobby-Vereinen durchaus.
     
    Ivan_ors und Kampfgummibaerlie gefällt das.
  4. Ivan_ors

    Ivan_ors Benutzer

    Danke für die Hilfreichen Antworten!
    Ich hätte noch eine Frage,
    Ich habe zwei Vereine die jeweils ein Stadion besitzen und nun möchte ich Wenn ich ein Spiel von denen ausgebe auch das Stadion Ausgeben. Jedoch wird nur ein Stadion ausgegeben anstatt beide

    SELECT spiele.Heim, spiele.Gast, (SELECT stadion.name WHERE spiele.Heim = stadion.verein)as 'Stadion' FROM stadion,spiele GROUP BY Datum

    Ich habe es auch mit case statt select versucht

    Ausgabe:
    Liverpool | Chelsea | Anfield Road
    Chelsea| Liverpool| NULL //Anstatt dem Namen vom Stadion
     
  5. akretschmer

    akretschmer Datenbank-Guru

    das sieht kapott aus. Da wir keine Tabellen etc. kennen wird es schwer ... aber vermutlich bekommstDu ungewollt da schon mal einen cross join von station und spiele.
     
    Ivan_ors gefällt das.
  6. Ivan_ors

    Ivan_ors Benutzer

    upload_2020-3-24_18-22-45.png Hier ein Foto der ausgabe
     
  7. Ivan_ors

    Ivan_ors Benutzer

    hier Stehen die Tabellen
     
  8. Ivan_ors

    Ivan_ors Benutzer

    Ich vermute das es einfach nur das erste Heimteam nimmt und da der Fehler ist
     
  9. Ivan_ors

    Ivan_ors Benutzer

    Ich habe eine Lösung gefunden

    Danke trotzdem für die Hilfe

    SELECT spiele.Heim, spiele.Gast, (spiele.T_heim) , (spiele.T_gast), spiele.Datum,(SELECT stadion.name WHERE spiele.Heim = stadion.verein)as 'Stadion' FROM spiele LEFT JOIN stadion ON spiele.Heim = stadion.verein GROUP BY Datum
     
  10. Ivan_ors

    Ivan_ors Benutzer

    HALLO
    ich habe bei diesemCode einen #1242 Fehler - Unterabfrage lieferte mehr als einen Datensatz zurück

    SELECT SUM((SELECT
    SUM(CASE
    WHEN t_heim - T_gast > 0 THEN 3
    WHEN t_heim - T_gast = 0 THEN 1
    ELSE 0
    END) AS Punkte
    FROM spiele group by Heim) + (SELECT
    SUM(CASE
    WHEN t_heim - T_gast < 0 THEN 3
    WHEN t_heim - T_gast = 0 THEN 1
    ELSE 0
    END) AS Punkte
    FROM spiele group by Gast))

    Bitte um Hilfe
     

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