order by datum

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

  • order by datum

    Hallo,

    ich nutze folgende Abfrage, um eine Monatliche Auflistung der Kundeneinträge zu erhalten:

    PHP-Code:
    SELECT DATE_FORMATanmeldedatum'%Y.%m' monatCOUNTkdnr anzahl
        FROM kunden WHERE kategorie 
    'kostenpflichtig' GROUP BY DATE_FORMATanmeldedatum'%Y.%m' 
    Bei der Darstellung wird aber der älteste Eintrag z.B. Juni 2004 an 1.Stelle ausgegeben. Ich möchte aber dass der aktuellste Monat an 1.Stelle ausgegelesen wird. Wie müßte ich die Abfrage ändern?


    Thx
    Klaus06

  • #2
    Indem du ähnlich einer ORDER BY - Klausel ein ASC oder DESC angibst. Info: hier bzw. hier
    Also:
    PHP-Code:
    SELECT DATE_FORMATanmeldedatum'%Y.%m' monatCOUNTkdnr anzahl
      FROM kunden WHERE kategorie 
    'kostenpflichtig'
      
    GROUP BY DATE_FORMATanmeldedatum'%Y.%m' DESC 

    Kommentar


    • #3
      Wie sieht's eigentlich mit folgender GROUP BY aus?
      PHP-Code:
      GROUP BY UNIX_TIMESTAMP(anmeldedatumDESC 
      Müsste eigentlich auch funktionieren. Weiß jetzt nämlich nicht, ob du nach DATE_FORMAT() sortieren kannst bzw. oder ob das sinnvoll ist.

      Kommentar


      • #4
        Wie sieht's eigentlich mit folgender GROUP BY aus?
        Müsste eigentlich auch funktionieren. Weiß jetzt nämlich nicht, ob du nach DATE_FORMAT() sortieren kannst bzw. oder ob das sinnvoll ist.
        Das würde aber vollkommmen andere Gruppierungen ergeben ,denn jedes Timestamp (Unixtime) würde Gruppiert, d.h. gruppiert nach sekunden was nicht sinnig ist.

        Mit GROUP wird gruppiert mit ORDER sortiert!!!
        PHP-Code:
         GROUP BY DATE_FORMATanmeldedatum'%Y.%m' )
         
        ORDER BY  DATE_FORMATanmeldedatum'%Y.%m' DESC 
        es müsste sogar gehen die 1 Spalte anzusprechen ohne die Funktion neu auszuführen
        PHP-Code:
         GROUP BY DATE_FORMATanmeldedatum'%Y.%m' )
         
        ORDER BY 1 DESC 
        Zuletzt geändert von chansel0049; 07.07.2005, 11:11.
        chansel0049
        ----------------------------------------------------
        if you've reached the bottomline - dig further!
        Übersetzer gesucht? http://www.babelport.com

        Kommentar


        • #5
          Original geschrieben von chansel0049
          Mit GROUP wird gruppiert mit ORDER sortiert!!!
          ja.
          oder gleich mit GROUP BY.

          PHP-Code:
           GROUP BY DATE_FORMATanmeldedatum'%Y.%m' )
           
          ORDER BY  DATE_FORMATanmeldedatum'%Y.%m' DESC 
          GROUP BY DATE_FORMAT( anmeldedatum, '%Y.%m' ) DESC
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            EDIT:
            mal wieder zu langsam

            Kommentar


            • #7
              Steht ja sogar im Handbuch (habs grad gelesen) ... Gut wusst'schnsch

              Egal, gruppieren nach UNIX_TimeStamp ist trotzdem nicht sinnvoll
              chansel0049
              ----------------------------------------------------
              if you've reached the bottomline - dig further!
              Übersetzer gesucht? http://www.babelport.com

              Kommentar


              • #8
                Aber wenn er als Spaltentyp für "anmeldedaten" DATE vergeben hat, kann man doch mittels UNIX_TIMESTAMP() gruppieren, denn der Rückgabewert ist dann für das gleiche Datum immer gleich. Hab ich nämlich grad mal in phpMyAdmin ausprobiert. War ja auch nur ein Gedanke.

                Kommentar


                • #9
                  Original geschrieben von richtsteiger
                  Aber wenn er als Spaltentyp für "anmeldedaten" DATE vergeben hat, kann man doch mittels UNIX_TIMESTAMP() gruppieren, denn der Rückgabewert ist dann für das gleiche Datum immer gleich.
                  ja und warum sollte man dann nicht gleich nach diesem DATE gruppieren ...?
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    @wahsaga
                    hast ja recht, dann kann er ja auch auf das DATE_FORMAT() in der GROUP BY - Klausel verzichten, oder?
                    PHP-Code:
                    GROUP BY anmeldedatum DESC 

                    Kommentar


                    • #11
                      @richtsteiger
                      Ja, mit DATE klappt es wohl
                      Ja, dann ist aber DATE DESC auch ausreichend und SELECT DATE_FORMAT ... GROUP BY adatum DESC wahrscheinlich sogar effizienter

                      ABER er will ja Monatsweise gruppieren also dennoch DATE_FORMAT, da hilft auch UNIX TImeSTAMP nix...
                      chansel0049
                      ----------------------------------------------------
                      if you've reached the bottomline - dig further!
                      Übersetzer gesucht? http://www.babelport.com

                      Kommentar

                      Lädt...
                      X