Ankündigung

Einklappen
Keine Ankündigung bisher.

Gesamtsumme von 6 Tabellen

Einklappen

Neue Werbung 2019

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

  • Gesamtsumme von 6 Tabellen

    Hallo,

    habe 6 Tabellen mit: Name und Tor.

    Ich möchte gerne die Gesamtsumme von ALLES 6 Tabellen sortiert nach namen und die Gesamtsumme aller Tore ausgeben.

    Von 2 Tabellen funktioniert soweit super aber nicht von 6 Tabellen

    Hier mein Code für 2 Tabellen:

    $sql = "SELECT name, SUM(tor) AS tor FROM ( SELECT name, tor FROM tbl_feldspiel_tor_schuetze UNION ALL SELECT name, tor FROM tbl_feldspiel_elfmeter_schuetze ) alle GROUP BY name DESC ORDER BY tor DESC;";
    $i = 1 ; // $i setzen
    $result = mysqli_query($conn, $sql );

    Liebe Grüße
    Mehmet Mürtz

  • #2
    Und wie sehen die Tabellen aus?
    Good programming is 5% knowledge, 5% skill, 20% caffeine, 30% attention to detail and 40% RTFM
    Kapazitäten frei: Einfach per PN ein Angebot einholen.

    Kommentar


    • #3
      Zitat von Mehmet Muertz Beitrag anzeigen
      habe 6 Tabellen mit: Name und Tor.

      Ich möchte gerne die Gesamtsumme von ALLES 6 Tabellen sortiert nach namen und die Gesamtsumme aller Tore ausgeben.
      Vermutlich gehören die Daten alle in eine Tabelle, dann erledigt sich das Problem von alleine - du solltest aber etwas genauer schreiben was in den Tabellen steht.

      Kommentar


      • #4
        Hi,

        1.Tabelle: tbl_feldspiel_tor_schuetze

        2.Tabelle: tbl_feldspiel_elfmeter_schuetze

        3.Tabelle: tbl_feldturnier_tor_schuetze

        4.Tabelle: tbl_feldturnier_elfmeter_schuetze

        5.Tabelle: tbl_hallenturnier_tor_schuetze

        6.Tabelle: tbl_hallenturnier_elfmeter_schuetze

        Alle mit: id, datum, name, tor


        z.B. Karl-Heinz hat man 12.12.2012 ein feldtor geschossen das ist in der Tabelle feldspiel_tor_schuetze
        Karl-Heinz hat am 13 12.2013 ein tor im Hallenturnier geschossen das ist wiederum in der Tabelle Hallenturnier_tor_schuetze

        Ich hoffe ich könnt damit was anfangen.

        Kommentar


        • #5
          Zitat von Mehmet Muertz Beitrag anzeigen
          Alle mit: id, datum, name, tor
          Das ist der Fehler: alle Daten gehören in eine Tabelle wobei diese Tabelle noch zusätzliche Felder bekommt in denen gespeichert wird in welchem Rahmen das Tor geschossen wurde und ob es ein Elfmeter war o.a..

          Kommentar


          • #6
            PHP-Code:
            SELECT namesumtor) as tore FROM (
                
            SELECT namecount(*) as tor FROM tbl_feldspiel_tor_schuetze group by name
                union
                SELECT name
            count(*) as tor FROM tbl_feldspiel_elfmeter_schuetze group by name
                union
                SELECT name
            count(*) as tor FROM tbl_feldturnier_tor_schuetze group by name
                union
                SELECT name
            count(*) as tor FROM tbl_feldturnier_elfmeter_schuetze group by name
                union
                SELECT name
            count(*) as tor FROM tbl_hallenturnier_tor_schuetze group by name
                union
                SELECT name
            count(*) as tor FROM tbl_hallenturnier_elfmeter_schuetze group by name
            ) as t
                group by name 

            Kommentar


            • #7
              ernsthaft toosten ?
              meiste nicht ein sql zum de redesing wäre angebrachter ?

              Kommentar


              • #8
                Sicherlich wäre es besser mit einer Tor-Tabelle und einer Spieler-Tabelle zu arbeiten, aber das war nicht die Frage.

                Kommentar


                • #9
                  Zitat von toosten Beitrag anzeigen
                  Sicherlich wäre es besser mit einer Tor-Tabelle und einer Spieler-Tabelle zu arbeiten, aber das war nicht die Frage.
                  Doch. Wenn jemand so offensichtlich auf dem Holzweg ist, ist es wesentlich sinnvoller ihm zu erklären wie es besser/einfacher geht als den Weg mit weiteren Latten zu verlängern. So ein fehlerhaftes Datenbankdesign fällt einem früher oder später immer gewaltig auf die Füße, da ist es sinnvoller das direkt zu korrigieren, je später man das macht desto mehr Aufwand wird das.

                  Kommentar


                  • #10
                    Man weis nie ob es nur ein vereinfachtes Beispiel eines größeren Problems ist.

                    Deshalb kann man seine Frage erst einmal beantworten und dann auf ein besseres Design hinweisen.
                    Gleich alles als Fehler ohne Alternative zu beantworten, finde ich nicht besonders lehrreich.

                    Kommentar


                    • #11
                      Zitat von toosten Beitrag anzeigen
                      Gleich alles als Fehler ohne Alternative zu beantworten, finde ich nicht besonders lehrreich.
                      Eine Farge sehe ich in dem Thread nur von reddighamburg, welche übrigens nicht so richtig beantwortet ist.
                      TE äussert nur einnen Willenj, mehr nicht.

                      Und ja, es ist ein grösseres Problem siehe #9

                      Kommentar


                      • #12
                        Wenn du mit deinem SQL aktuell sechs nahezu identische Tabellen zusammenführst, ist das ein klares Signal dafür, dass ein Redesign der Datenbankstruktur sinnvoll wäre. Es geht nicht nur um Schönheitskorrektur, sondern um eine normalisierte Datenbank.

                        Code:
                        tor (
                            id INT AUTO_INCREMENT,
                            name VARCHAR(255),
                            tore INT,
                            typ ENUM('feld_tor', 'feld_elfmeter', 'halle_tor', 'halle_elfmeter', 'freundschaft_tor', 'freundschaft_elfmeter'),
                            PRIMARY KEY(id)
                        )
                        sorry, shift-taste kaputt

                        Kommentar

                        Lädt...
                        X