datensatzwerte zusammenfassen

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

  • datensatzwerte zusammenfassen

    Hallo zusammen,

    in meiner tabelle stehen zu verschiedenen Uhrzeiten an verschiedenen Tagen Bemerkungen.

    12.12.2005 14:00 dsssadsas
    12.12.2005 15:00 vvvvv

    14.12.2005 08:00 dcccc

    Jetzt möchte ich die Textspalte pro Tag zusammenfassen, also

    12.12.2005 dsssadsas, vvvvv

    Das kann MySQL doch bestimmt.

    Hab bisher nicht bei Mysql.com gesucht weil ich nicht weiß, wo ich ansetzen soll (Spalten bei Select, im WHere, beim Group...)

    DANKE!

    strauberry

  • #2
    Du hast in deiner Applikation ja das Datum, schließlich brauchst du es in jedem Fall fürs SELECT. Ich würde dann einfach

    SELECT bemerkung FROM tabelle WHERE datum=$date

    absetzen, $date ausgeben und dann das Resultset.

    Kommentar


    • #3
      Das Problem ist, dass ich z.B. von einem ganzen Monat für jeden Tag die Bemerkungen brauche. Die hätte ich dann gerne kommasepariert als Ergebnisfeld, damit ich die in ein Array reinlesen kann.

      PHP-Code:
      SELECT CONCAT(Beschreibung) as beschreibungday(Von) as tag from taetigkeiten WHERE Von >= '2005-12-01 00:00:00' AND Bis <= '2005-12-30 23:59:00' GROUP BY tag 
      So habe ich es bisher... vielleicht macht das den Sinn deutlich.

      Kommentar


      • #4
        Such mal in: http://dev.mysql.com/doc/refman/5.0/...functions.html ... sollte was dabei sein (seit MySQL 4.1.xx)
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #5
          Jetzt möchte ich die Textspalte pro Tag zusammenfassen, also
          12.12.2005 dsssadsas, vvvvv
          Nein, das kann Mysql nicht. Du kannst keine Spalten aus der gleichen Tabelle aus verschiedenen Zeilen in einer Zeile zusammenfassen
          ausser mit einem JOIN auf die gleiche Tabelle mit einem Alias, was aber in Deinem Fall so viele JOINS wie Einträge pro Tag bedeuten würde also so gut wie unhandlebar.

          Dir wird nichts anderes übrig bleiben, als all Zeilen auszulesen und dann mit PHP zusammenzustellen.

          Für die Tagesbestimmung würde ich DATE_FORMAT(date, '%Y-%m-%d') nehmen oder evtl. noch SUBSTRING(date, 1, 10)
          Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

          Kommentar


          • #6
            Original geschrieben von thommyk
            Nein, das kann Mysql nicht.
            Mein MySQL schon ...
            carpe noctem

            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

            Kommentar


            • #7
              einfach mit BETWEEN abfragen und die Daten PHP-seitig zusammensetzen

              Kommentar


              • #8
                @goth

                Sowas kann ja nur von Dir kommen.
                Das hätte ich dann auch gerne mal gewusst, wie das gehen soll
                (ausser wie erwähnt mit JOIN auf diesselbe Tabelle)?
                Bei z.B. 10 Datensätzen mit dem gleichen Tagesdatum alle Einträge im Feld Bemerkungen in EINE Zeile zusammengestellen?

                Komm, mach mich schlau
                Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

                Kommentar


                • #9
                  Genau die Fkt. hatte ich gesucht klappt klasse, vielen Dank!

                  Hier das Statement (damit die Diskussion ob MySQL das kann oder nicht überflüssig wird )

                  PHP-Code:
                  SELECT GROUP_CONCAT(Beschreibung) as ConcatBeschreibungday(Von) as tagCONCAT(day(Von), '.' ,month(Von), '.') as Datum from taetigkeiten WHERE Von >= '2005-12-01 00:00:00' AND Bis <= '2005-12-30 23:59:00' GROUP BY tag 
                  Zuletzt geändert von strauberry; 22.12.2005, 11:08.

                  Kommentar


                  • #10
                    @thommyk: Noch Fragen ... ?!
                    carpe noctem

                    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                    Kommentar


                    • #11
                      wieder was gelernt Man lernt nie aus.
                      Hätte ich früher schon mal brauchen können. Danke
                      Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

                      Kommentar

                      Lädt...
                      X