Ankündigung

Einklappen
Keine Ankündigung bisher.

Select count

Einklappen

Neue Werbung 2019

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

  • Select count

    Guten Tag,

    folgende SQL Tabelle steht:

    sj_essen_abrechnung
    _____________________________

    id
    mitarbeiternr
    name
    email
    datum
    essen (das gewählte Menü)
    anzahl (anzahl der Menüs)
    abrechnung (wird auf 1 gesetzt, wenn die Bestellung bereits abgerechnet ist)


    Mit einer Select Abfrage möchte ich alle bestellten Menüs zusammen gefasst pro Mitarbeiter in einem bestimmten Zeitraum anzeigen lassen.

    PHP-Code:
     SELECT COUNT( *) AS counteranamemitarbeiternr FROM sj_essen_abrechnung WHERE abrechnung $optionbilled AND MONTH(datum) = $dayselect AND YEAR(datum) = $yearselect GROUP BY namemitarbeiternr ORDER BY name ASC  "; 
    Das Problem:
    Mit meiner Abfrage werden nur Bestellungen und nicht die Anzahl der Gerichte zusammen gefasst.
    Leider bekomme ich die Abfrage nicht so umgestellt, das tatsächlich alle Menüs also die Anzahl zusammengerechnet wird.

    Wenn ich richtig recherchie wäre hier der Befehl SUM richtig und nicht Count.
    Also muss die Abfrage theoretisch SUM(anzahl) lauten oder?


    Ich hoffe ich habe es verständlich ausgedrückt und jemand kann mir helfen.

    Vielen Dank im Vorraus

  • #2
    Moin.
    Sum ist schon die richtige Richtung. Hier kannst du das live testen: https://www.w3schools.com/sql/trymys...func_mysql_sum
    Lg

    Kommentar


    • #3
      Zitat von crxs123 Beitrag anzeigen
      Guten Tag,

      folgende SQL Tabelle steht:

      sj_essen_abrechnung
      _____________________________

      id
      mitarbeiternr
      name
      email
      datum
      essen (das gewählte Menü)
      anzahl (anzahl der Menüs)
      abrechnung (wird auf 1 gesetzt, wenn die Bestellung bereits abgerechnet ist)


      Mit einer Select Abfrage möchte ich alle bestellten Menüs zusammen gefasst pro Mitarbeiter in einem bestimmten Zeitraum anzeigen lassen.

      PHP-Code:
       SELECT COUNT( *) AS counteranamemitarbeiternr FROM sj_essen_abrechnung WHERE abrechnung $optionbilled AND MONTH(datum) = $dayselect AND YEAR(datum) = $yearselect GROUP BY namemitarbeiternr ORDER BY name ASC "; 
      Das Problem:
      Mit meiner Abfrage werden nur Bestellungen und nicht die Anzahl der Gerichte zusammen gefasst.

      MySQL ist eigentlich eine Ansammlung von Bugs. Hier ist es nicht in der Lage zu erkennen, daß die Abfrage syntaktisch / logisch falsch ist. Anstatt einer Fehlermeldung liefert sie ein falsches Resultat.

      Mache Deine Abfrage richtig (hint: GROUP BY aller nichtaggregierten Spalten) und wie durch ein Wunder stimmt es dann. Empfehlung: verwende eine bessere Datenbank.
      PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

      Kommentar


      • #4
        Warum fragst du dann in deinem SQL nicht nach 'anzahl', wenn du das wissen willst? Zudem gibt es auch die Möglichkeit Abfragen zu verschachteln, was manchmal hilft es Schritt für Schritt anzugehen
        909 - Maschinen machen Maschinensachen

        Kommentar

        Lädt...
        X