Announcement

Collapse
No announcement yet.

Datenauswertung / Verdichtung - Dummy weiß nicht weiter

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datenauswertung / Verdichtung - Dummy weiß nicht weiter

    Für mein aktuelles Problem hatte ich vor einiger Zeit hier schon mal nach Hilfe gesucht. Aus Zeitgründen hatte ich die Sache erst mal beiseite gelegt. Es ist ein Hobby-Projekt, es ist meine Leidenschaft, die ich da auslebe und nicht mein Beruf.
    Es geht um die Berechnung von Wettkampfergebnissen. Sportler sind Mitglied in einem Verein und sind in Wettkämpfen erfolgreich. Die Wettkämpfe finden in verschiedenen Klassen statt. A ist topp, D ist die unterste überregionale Stufe.
    In einer aufbereiteten Tabelle AUSWERT habe ich für alle Wettkämpfe die Ergebnisse abgelegt., Da steht der Sportler und der Verein drin und das Level, auf dem er erfolgreich war. Jetzt möchte ich in der Tabelle STATIST, diese Daten aufaddieren. Dabei ist die Tabelle mit allen Vereinen vorbelegt, die in ,in mindestens einem der vier Wettkampfkategorien erfolgreich Sportler hatten.

    Für jeden Verein sollen die Erfolge der Vereinsmitglieder (Sportler) in jeder Kategorie (A bis D) aufaddiert werden. Damit das einfacher ist, wird für jedes Level ein Skript gemacht. Berücksichtigt werden die Plätze 1 bis 3.

    Eigentlich hatte ich gedacht, die Tabelle STATIST mit den Daten aus Tabelle AUSWERT mit einem simplen Skript füllen zu können. Aber stattdessen bekomme ich eine Fehlermeldung, die ich nicht zu lösen weiß. Wer kann mir helfen?

    Am Ende soll da stehen
    Level A Level B
    Verein1 10 5
    Verein2

    update statist s, auswert a
    set levela=count(*)
    where a.status='A'
    and s.verein=a.verein
    group by a.status;
    Zuletzt editiert von Christian Marquardt; 23.10.2023, 10:21. Reason: Kleine Schrift entfernt

  • #2

    Ich habe nicht verstanden was du willst.
    Dein Update-Statment ist komplett falsch
    Man kann nur eine Tabelle updaten, das count(*) ist da falsch, ein group ist da ebenfalls falsch
    Vermutlich wirst du mit einem Subselect arbeiten müssen. Dessen Ergebnis kann dann für ein Update genutzt werden

    update statist
    set levela = (select count(*) from auswert where .... )
    where ...(Auswahl welche Datensätze ein update erhalten)


    https://www.w3schools.com/mysql/mysql_update.asp
    Zuletzt editiert von Christian Marquardt; 23.10.2023, 10:32.
    Christian

    Comment


    • #3
      Ich hab eine Tabelle, da stehen 1000 Zeilen drin, Für jeden Wettbewerb eine Zeile.
      Diese Tabelle will ich jetzt so zusammen fassen, daß für jeden Verein eine Zeile existiert. Und in der Zeile steht dann, wie viel Erlfolge die Sportler des Vereins in Level A, Level B etc in einem Zeitraum hatten.

      Dein Script werde ich heute Nachmittag mal auf die DB loslassen. Hört sich gut an. Ich glaube, ich muß mal üben. Irgenweie hab ich da immer einen großen Bogen drum herum gemacht.

      Comment


      • #4
        select Verein, sum(LevelA),sum(LevelB) from tablle group by Verein

        um daraus eine neue Tabelle zu machen

        create neu_tabelle as
        (
        select Verein,VEREIN sum(LevelA) LEVELA,sum(LevelB) LEVELB from tablle group by Verein
        )
        Zuletzt editiert von Christian Marquardt; 23.10.2023, 11:45.
        Christian

        Comment


        • #5
          Sum bedeutet doch, daß numerische Werte aufaddiert werden, ich will aber die Anzahl der "Vorkommen" ermitteln.
          Also ich will wissen,. wie oft in Status ein A drin steht. Das Feld Status ist Alpha und hat den Inhalt A bis D

          Dein vorheriger Vorschlag könnte die Lösung sein, aber das muß ich nachher mal in Ruhe prüfen. Im Moment habe ich dazu keine Nerven

          Comment


          • #6
            select
            Verein,
            sum(
            CASE
            WHEN status='A' THEN
            1
            ELSE
            0
            END
            ) LEVELA,
            sum(
            CASE
            WHEN status='B' THEN
            1
            ELSE
            0
            END
            ) LEVELB
            from tablle group by Verein
            Zuletzt editiert von Christian Marquardt; 23.10.2023, 15:00.
            Christian

            Comment

            Working...
            X