MySQL: tabelle: mehrere count über mehrere spalten...

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

  • MySQL: tabelle: mehrere count über mehrere spalten...

    hi leute,

    bin schon wieder da und diesmal mit einem mysql-query-problem:

    ich habe eine tabelle mit diversen termin-einträgen. dabei gibt es termine für einzelne benutzer und oder benutzer-gruppen. ich möchte die gesamtanzahl der termine der einzelnen benutzer und die gesamtanzahl der termine der benutzergruppen für einen tag auflisten...

    die tabelle schaut so aus:

    PHP-Code:

    id   benutzer_id  termin_id    typ  datum
    1    1            1            e    2007
    -01-01
    2    5            2            e    2007
    -01-01
    3    3            3            g    2007
    -01-03
    4    6            3            g    2007
    -01-03
    5    1            4            e    2007
    -01-03
    6    2            5            e    2007
    -01-04
    7    4            6            e    2007
    -01-10
    8    3            7            g    2007
    -01-25
    9    2            7            g    2007
    -01-25
    10    5            8            g    2007
    -01-25
    11    9            8            g    2007
    -01-25 
    typ: e.... einzelner benutzer
    typ: g.... mehrere benutzer gehören zum gleichen termin


    uns so solls nach dem query ausschauen:

    PHP-Code:

    id   anzahl_einzelnetermine   anzahl_gruppentermine    datum
    1    2                        0                        2007
    -01-01
    2    1                        1                        2007
    -01-03
    3    1                        0                        2007
    -01-04
    4    1                        0                        2007
    -01-10
    5    0                        2                        2007
    -01-25 
    ich habe schon mit count() und group by... probiert, aber ich versehts irgendwie nicht. bin noch nicht so versiert in mysql

    bitte um hilfe!!!

    lg,
    holly123

  • #2
    Re: MySQL: tabelle: mehrere count über mehrere spalten...

    SELECT SUM(typ = "e") AS einzelne, SUM (typ = "g") AS gruppen FROM tabelle GROUP BY datum

    Die ID Spalte hat allerdings da nichts mehr drin zu suchen...

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      funktioniert schon, aber nicht ganz:

      die gruppen-termine sollen auch noch zusammegefasst werden.

      SELECT SUM(typ = "e") AS einzelne, SUM (typ = "g") AS gruppen FROM tabelle GROUP BY datum

      ergibt folgendes:


      PHP-Code:

      anzahl_einzelnetermine   anzahl_gruppentermine    datum
      2                        0                        2007
      -01-01
      1                        2                        2007
      -01-03
      1                        0                        2007
      -01-04
      1                        0                        2007
      -01-10
      0                        4                        2007
      -01-25 
      es müsste quasi noch die termin_id mit verglichen werden....

      Kommentar


      • #4
        SELECT SUM(typ = "e") AS einzelne, SUM (typ = "g") AS gruppen FROM tabelle GROUP BY datum, termin_id

        Ein bisschen ausprobieren ist übrigens auch erlaubt...

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          hi ghostgambler,

          genau das probiere ich schon die ganze zeit... "rumprobieren" :-)

          auch dein ansatz habe ich schon probiert, aber der führt auch zu nichts. jetzt wird das gleiche datum mehrmals ausgegeben...


          PHP-Code:

          anzahl_einzelnetermine   anzahl_gruppentermine    datum
          1                        0                        2007
          -01-01
          1                        0                        2007
          -01-01
          0                        2                        2007
          -01-03
          1                        0                        2007
          -01-03
          1                        0                        2007
          -01-04
          1                        0                        2007
          -01-10
          0                        2                        2007
          -01-25
          0                        2                        2007
          -01-25 
          ich schaffs aber nicht, diese zeilen wieder zusammenzufügen...

          Kommentar


          • #6
            Tjo... mir fällt jetzt spontan mal wieder ein unperformantes
            Code:
            SELECT SUM (typ = "g") gruppen, SUM (typ = "e") einzel FROM 
            (SELECT termin_id, typ, datum FROM tabelle GROUP BY datum, termin_id) GROUP BY datum
            ein, aber ich würde jetzt mal spontan eher dazu raten die Tabelle zu normalisieren ... Redundanzen entfernen, dann kann man das auch ohne solch ein abartiges Konstrukt an Query ermitteln.

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              dein struct klappt bei mir sowieso nicht, ich glaube meine db ist zu alt...

              wärs ein ansatz, eine temporäre tabelle anzulegen und dann mit der weiterzuarbeiten?
              oder klappts vielleicht mit inner join?

              Kommentar

              Lädt...
              X