DS pro Tag,Monat u. Jahr ausgeben

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

  • DS pro Tag,Monat u. Jahr ausgeben

    Hallo,

    ich habe eine Tabelle, in der der Timestamp ($datum), ein Ereignis($artnr) u. ein Betrag($vlp) x gespeichert ist.

    Wie kann ich folgendes Ausgeben lassen:

    Wie oft ist das Ereignis diesen Monat, letzten Monat, alle Monate, u. Jahre passiert.

    Dann noch den Gesammtbetrag pro Tag, Monat u. Jahr.

    Sprich: wie sage ich meiner Sql Anweisung, das sie das richtige ausliest?

    Kann mir einer weiterhelfen???

    Danke schonmal...

    grüße Csab

  • #2
    Ich bin nicht ganz sicher was du machen willst. aber ich glaube du
    möchtest aus einer spalte deiner tabelle immer einen bestimmten
    wert auslesen. vielleicht hilft ja...
    PHP-Code:
    array_key_exists 
    www.php-resource.de/manual...


    Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

    Kommentar


    • #3
      Danke für die schnelle Antwort. muss sagen, hab nicht all zu viel ahnung von php.

      array_key_exists??
      mhhh......

      mal ein Beispiel:

      ein verleih von artikeln.

      tabelle: artikel
      felder: id, timestamp, artikel_titel, ausleih_preis

      wenn ein artikel verliehen wird, speichert er das datum des verleihtages.

      jetzt möchte ich anhand vom timestamp ausgeben, wie oft ein artikel (der vorher ausgewählt wurde, und die id übergeben wird) pro tag, monat, jahr verliehen wurde.

      und dann noch:
      wieviel kohle der artikel diesen Monat, letzten Monat, alle Monate, u. Jahre gebracht hat.

      muss ich dazu den timestamp irgendwie umwandeln in ein datum?
      und dann mit diesem datum arbeiten?

      wie setell ich das am besten an?

      thx u. grüße

      csab

      Kommentar


      • #4
        felder: id, timestamp, artikel_titel, ausleih_preis
        das feld darf nicht unbedingt timestamp heißen ...

        für deine zwecke bietet sich group by an ...
        für anzahl count, für die kohle sum ...

        wenn du nen stück deiner tabelle dumpst, fällts mir leichter, den query aufzustellen
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          moin,

          ja, mein Fehler. Das Feld heist datum, wo aber der Timestamp gesspeichert wird.

          SUM(ausleih_preis) u. Count(id) hab ich mir schon so gedacht.
          Mir fehlt halt nur die Bedingung die am Timestamp irgendwie geknüpft sein muss.(denk ich mal)

          Also in etwa so:

          PHP-Code:
          select SUM(ausleih_preisfrom artikel where "Monat=dieser Monat"
          oder:
          PHP-Code:
          select SUM(ausleih_preisfrom artikel where "Monat=letzer Monat"
          Tag=heute und so weiter...

          und für Anzahl dann halt Count(id) statt SUM(ausleih_preis).

          Tabelle Dumpen?? Was das?

          Kommentar


          • #6
            hier findest du (fast) alles, was du brauchst:
            http://www.mysql.de/doc/de/Date_and_time_functions.html
            Kissolino.com

            Kommentar


            • #7
              mhh, hab mir das mal angeschaut.

              muss wahrscheinlich nochmal schauen. hab leider nicht viel verstanden da...

              trotzdem danke schonmal...

              Kommentar


              • #8
                ok, ich hab mal etwas rumprobiert.

                er kann mir die letzten bestellungen der letzten 30 tage anzeigen. das geht...
                ist allerdings nicht das was ich wollte *gruml

                hier mal der code:

                PHP-Code:
                SELECT count(bestell_datum
                FROM ".$table_ext."_bestellungen 
                WHERE artikel_nr
                ='$artikel_nr' 
                AND TO_DAYS(NOW($today)) - TO_DAYS(bestell_datum) <= 30
                für letzten Monat wollt ich so tun:

                PHP-Code:
                SELECT count(bestell_datum
                FROM ".$table_ext."_bestellungen 
                WHERE artikel_nr
                ='$artikel_nr' 
                AND TO_DAYS(NOW($today)) - MONTH(bestell_datum) <= 1
                funktioniert nicht...

                Alle Monate hab ich garnichts machen können :-(

                und für Letztes Jahr hab ich das:

                PHP-Code:
                SELECT count(bestell_datum
                FROM ".$table_ext."_bestellungen 
                WHERE DATE_SUB
                ($todayINTERVAL 12 MONTH
                AND 
                artikel_nr='$artikel_nr' 
                funktioniert allerdings auch nicht...


                $today = date("y-m-d");

                im format y-m-d ist auch das datum gespeichert.
                Zuletzt geändert von Csab; 03.03.2004, 18:04.

                Kommentar


                • #9
                  Alle Monate hab ich garnichts machen können :-(
                  für deine zwecke bietet sich group by an ...
                  Die Zeit hat ihre Kinder längst gefressen

                  Kommentar


                  • #10
                    ja danke, hab ich oben schon gesehen.
                    nur hilft mir das so nicht sehr viel...

                    was ich finde mit group by, kann ich nicht umsetzten.

                    bin halt neu in php u. co...

                    vieleicht so:

                    PHP-Code:
                    SELECT count(bestell_datum
                    FROM ".$table_ext."_bestellungen 
                    WHERE artikel_nr
                    ='$artikel_nr' Group by bestell_datum 
                    macht er nicht...
                    Zuletzt geändert von Csab; 03.03.2004, 18:03.

                    Kommentar


                    • #11
                      PHP-Code:
                      select to_char(bestell_datum'month'), 
                        
                      to_char(bestell_datum'y.m'), 
                        
                      count(bestell_datum
                      from ".$table_ext."_bestellungen 
                      where artikel_nr
                      ='$artikel_nr'
                        
                      group by to_char(bestell_datum,'month'), 
                        
                      to_char(bestell_datum,'y.m'), 
                        
                      order by to_char(bestell_datum,'y.m')"; 
                      hat er auch nicht gemacht...

                      zeigt er 0 an, sind aber 2 vom letzten jahr drin. *heul

                      Kommentar


                      • #12
                        hmm,

                        schau mal im php_your_admin, exportieren, dort kannst du ein stück deiner tabelle dumpen ... das macht zumindest mir einfacher, nen query zu gestalten ...
                        Die Zeit hat ihre Kinder längst gefressen

                        Kommentar


                        • #13
                          php_your_admin hab ich nicht.
                          aber meine tabelle schaut so aus:

                          table - demo_bestellungen

                          id
                          user_id
                          bestell_datum - datum der bestellung (immer $today was das format date("y-m-d") hat)
                          bestell_verleihpreis - Zahl (2.50 oder 2.0 0 o.ä.)
                          artikel_nr

                          4 Datensätze sind zum test drin:

                          id - user_id - bestell_datum - bestell_verleihpreis - artikel_nr

                          1 - 1 - 04-01-03 - 2.50 - 37
                          2 - 1 - 04-02-03 - 2.50 - 37
                          3 - 1 - 03-03-03 - 2.50 - 37
                          4 - 1 - 03-03-06 - 2.50 - 37

                          hoffe das reicht als infos...

                          Kommentar


                          • #14
                            hoffe das reicht als infos...
                            mir leider nicht. den dump brauch ich nur per copy&paste in meine db übernehmen, mit deinen angaben ... helfen tu ich gern, aber ...

                            ich auch nicht so der sql-kenner, daß ich die query so ohne probieren hinkriege ...

                            wenn du einfach mal
                            Code:
                            GROUP BY DATE_FORMAT(bestell_datum, '%m')
                            oder so probierst?
                            Die Zeit hat ihre Kinder längst gefressen

                            Kommentar


                            • #15
                              oh sorry, da hab ich nicht richtig aufgepasst. hier mal die tabelle:

                              PHP-Code:
                              DROP TABLE IF EXISTS demo_bestellungen;
                              CREATE TABLE demo_bestellungen (
                                
                              id int(10NOT NULL auto_increment,
                                
                              user_id int(10NOT NULL default '0',
                                
                              bestell_datum varchar(30NOT NULL default '',
                                
                              bestell_verleihpreis varchar(50NOT NULL default '',
                                
                              artikel_nr bigint(10NOT NULL default '0',
                               
                              PRIMARY KEY  (id)
                              TYPE=MyISAM;



                              #
                              # Dumping data for table 'demo_bestellungen'
                              #

                              INSERT INTO demo_bestellungen VALUES("1""1""04-01-03""2.50""37");
                              INSERT INTO demo_bestellungen VALUES("2""1""04-02-03""2.50""37");
                              INSERT INTO demo_bestellungen VALUES("3""1""03-03-03""2.50""37");
                              INSERT INTO demo_bestellungen VALUES("4""1""03-03-06""2.50""37"); 
                              GROUP BY DATE_FORMAT(bestell_datum, '%m')
                              hab ich auch mal probiert. ging leider nicht.

                              ich glaube ich werd grau bei der sache LOL

                              Kommentar

                              Lädt...
                              X