SQL-Problem

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

  • SQL-Problem

    Hallo

    Ich wollte einen DB Auswertung für mein Portal schreiben, die einen Datumswert aus der Datenbank benötigt;
    Das Datum steht in der normalen Form (2002-08-19 14:04:07) in der Datenbank - meine Aufgabe ist jetzt das Datum in der SQL- Anweisung nach dem Monat zu sortieren und zu gruppieren -
    Dies habe ich mit folgendem SQL- Statement versucht:
    SELECT distinct (month( teilnahme_erstell_datum)) ...
    Jetzt gibt er mir z.b.: für den Juni (.06.) die 7 aus - also für jeden Monat die Monatszahl + 1 ;
    Desweiteren gibt er mir bei den Monaten Oktober , November und Dezember also zweistellige Monatszahlen nur die 1 aus was mir nicht viel bring - habt Ihr da vielleicht ne andere Lösung;

    THX
    knowledge is power - arm yourself

  • #2
    Hi,

    versuchs mal mit
    PHP-Code:
    ... DATE_FORMAT(teilnahme_erstell_datum,"%m") ... 
    rth
    Zuletzt geändert von Wotan; 27.06.2003, 13:37.
    H I L F E
    GD FreeType Antialising
    Gesuch PHP Entwicklungsumgebung
    ------------------------------------------
    Der Cmabrigde rael tset, sruf whoin du wlilst

    Kommentar


    • #3
      Hmm ... das sollte eigentlich funktionieren - wenn die month()-Funktion nicht buggy ist.

      Zur Not Hilft ja noch der Umweg über das von Robert erwähnte date_format oder über substring(spalte, 6, 2); aber das Wahre ist das auch nicht.
      mein Sport: mein Frühstück: meine Arbeit:

      Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

      Kommentar


      • #4
        Das Problem ist dass ich die Werte schon falsch aus SQL geliefert bekomme; Die umwandlung in PHP ist kein Problem ;
        Wenn ich mir das SQL-Abfragenarray anschaue bei meiner Abfrage kommen eben oben genannte Ergebnisse;
        knowledge is power - arm yourself

        Kommentar


        • #5
          Hi,

          dann poste doch mal bitte die gesamt Abfrage, die table structure, und vielleicht ein paar Testdaten, um die falsch gelieferten Ergebnisse besser nachvollziehen zu können.

          rth
          H I L F E
          GD FreeType Antialising
          Gesuch PHP Entwicklungsumgebung
          ------------------------------------------
          Der Cmabrigde rael tset, sruf whoin du wlilst

          Kommentar


          • #6
            alles klar

            Ich habe hier dieAbfraghe etwas abgeändert jetzt gibt er mir die richtigen Werte aus; - wo muss ich im SQL-Statement den DISTINCT Befehl reinschreiben um die Monate nur einmal aufgeführt zu bekommen?#

            "
            SELECT teilnahme_erstell_datum AS datum,
            MONTHNAME(teilnahme_erstell_datum) AS monat,
            prepaid.karte.aktion AS aktion
            FROM kurs_teilnahme
            INNER JOIN prepaid.karte
            ON prepaid.karte.nummer = teilnahme_kurs_prepaid
            WHERE (teilnahme_kurs_prepaid > 0 and aktion = '$array[0]' )
            ORDER BY teilnahme_erstell_datum
            "
            knowledge is power - arm yourself

            Kommentar


            • #7
              Re: SQL-Problem

              Original geschrieben von mkoegler
              Das Datum steht in der normalen Form (2002-08-19 14:04:07) in der Datenbank
              welcher spaltentyp?
              meine Aufgabe ist jetzt das Datum in der SQL- Anweisung nach dem Monat zu sortieren und zu gruppieren -
              Dies habe ich mit folgendem SQL- Statement versucht:
              SELECT distinct (month( teilnahme_erstell_datum)) ...
              was hat gruppieren mit DISTINCT zu tun?
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                ...Anweisung nach dem Monat zu sortieren und zu gruppieren - ...
                Hast du das gruppieren jetzt weggelassen ?
                Also wenn du
                PHP-Code:
                SELECT teilnahme_erstell_datum AS datum,
                MONTHNAME(teilnahme_erstell_datum) AS monat,
                prepaid.karte.aktion AS aktion
                FROM kurs_teilnahme
                INNER JOIN prepaid
                .karte
                ON prepaid
                .karte.nummer teilnahme_kurs_prepaid
                WHERE 
                (teilnahme_kurs_prepaid and aktion '$array[0]' )
                GROUP BY monat 
                ORDER BY teilnahme_erstell_datum 
                das group einfügst sollte jeder monat nur einmal kommen.

                gruss
                rth
                H I L F E
                GD FreeType Antialising
                Gesuch PHP Entwicklungsumgebung
                ------------------------------------------
                Der Cmabrigde rael tset, sruf whoin du wlilst

                Kommentar


                • #9
                  Vielen Dank

                  Danke jetzt funzts - habt ihr vielleicht noch nen Tip wie ich das Datum auf deutsch umstellen könnte - dann werde ich euch nicht mehr nerven;

                  knowledge is power - arm yourself

                  Kommentar


                  • #10
                    Re: Vielen Dank

                    Original geschrieben von mkoegler
                    habt ihr vielleicht noch nen Tip wie ich das Datum auf deutsch umstellen könnte
                    lies. (insb. DATE_FORMAT)
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar

                    Lädt...
                    X