Avatar billede sako Nybegynder
08. januar 2005 - 17:58 Der er 14 kommentarer og
1 løsning

Optælling af antal bestillinger pr dag

Jeg har en database med en masse tidsbestillinger i som ligger i formatet 2004-10-12 13:43:10 osv.

Kan man med et udtræk få en optælling over hvor mange bestillinger der har været de enkelte dage i en måned ?
Avatar billede googolplex Novice
08. januar 2005 - 20:21 #1
Ja, hvis du har brugt MySQL date/time felter, så skulle det ikke være noget problem at gøre i direkte i din SQL:

http://dev.mysql.com/doc/mysql/en/Date_and_time_functions.html

Her kan du se lidt eksempler.
Avatar billede coderdk Praktikant
08. januar 2005 - 20:26 #2
F.eks.:

$sql = "SELECT felt1, felt2, felt3, bestilt, DATE_FORMAT( bestilt, '%Y-%m-%d' ) as dagen FROM tabel WHERE DATE_FORMAT( bestilt, '%Y-%m' ) = '2004-10' ORDER BY dagen";
$qh = mysql_query( $sql );
if ( mysql_num_rows( $qh ) > 0 )
{
  $old = '';
  while ( $row = mysql_fetch_assoc( $qh ) )
  {
      if ( $row['dagen'] != $old )
      {
        echo "<br><b>" . $row['dagen'] . "</b><br>";
      }
      echo $row['bestilt'] . "<br>";
      // Skriv flere felter ud?
  }
  mysql_free_result( $qh );
}
else
{
  echo "Ingen records";
}
Avatar billede coderdk Praktikant
08. januar 2005 - 20:27 #3
Ja, skulle nok være:

$sql = "SELECT felt1, felt2, felt3, bestilt, DATE_FORMAT( bestilt, '%Y-%m-%d' ) as dagen FROM tabel WHERE DATE_FORMAT( bestilt, '%Y-%m' ) = '2004-10' ORDER BY dagen";
$qh = mysql_query( $sql );
if ( mysql_num_rows( $qh ) > 0 )
{
  $old = '';
  while ( $row = mysql_fetch_assoc( $qh ) )
  {
      if ( $row['dagen'] != $old )
      {
        echo "<br><b>" . $row['dagen'] . "</b><br>";
        $old = $row['dagen'];
      }
      echo $row['bestilt'] . "<br>";
      // Skriv flere felter ud?
  }
  mysql_free_result( $qh );
}
else
{
  echo "Ingen records";
}
Avatar billede sako Nybegynder
08. januar 2005 - 20:35 #4
kan godt se den finder de dage hvor der er bestillinger - men skal der er ikke et eller andet "count" til for at finde antallet ?
Avatar billede sako Nybegynder
08. januar 2005 - 20:41 #5
jeg har lavet følgende med den viser kun pr måned - kan ikke få det til at virke pr. dag...

$sql = mysql_query("select month(appointmentstart) as month, year(appointmentstart) as year, count(*) as antal from booking_appointment group by month order by year, month");
while($row = mysql_fetch_array($sql)){

echo $row['month']."--".$row['antal'];
}
Avatar billede coderdk Praktikant
08. januar 2005 - 21:03 #6
SELECT COUNT( appointmentstart) AS antal FROM tabel GROUP BY DATE_FORMAT( bestilt, '%Y-%m-%d' ) ORDER BY DATE_FORMAT( bestilt, '%Y-%m' )
Avatar billede coderdk Praktikant
08. januar 2005 - 21:04 #7
Eller måske rettere:

SELECT appointmentstart, COUNT( appointmentstart ) AS antal FROM tabel GROUP BY DATE_FORMAT( appointmentstart, '%Y-%m-%d' ) ORDER BY DATE_FORMAT( appointmentstart, '%Y-%m' )
Avatar billede sako Nybegynder
08. januar 2005 - 21:11 #8
det virker faktisk perfekt - hvis jeg lige forhøjer pointene kan du så lige hjælpe med hvordan jeg får trukket ud hvilken dag tallene hører til - så virker det perfekt... og smid lige et svar :-)
Avatar billede sako Nybegynder
08. januar 2005 - 21:14 #9
Der var jeg lige hurtig nok - den tæller alle aftalerne op og tager ikke højde for at det kun skal være for f.eks. januar -
Avatar billede coderdk Praktikant
08. januar 2005 - 21:17 #10
SELECT appointmentstart, COUNT( appointmentstart ) AS antal FROM booking_appointment WHERE DATE_FORMAT( appointmentstart, '%Y-%m' ) = '2004-01' GROUP BY DATE_FORMAT( appointmentstart, '%Y-%m-%d' ) ORDER BY DATE_FORMAT( appointmentstart, '%Y-%m' )
Avatar billede sako Nybegynder
08. januar 2005 - 21:17 #11
nu sover jeg lidt - det havde du jo løst i det første indlæg -  - $sql = mysql_query("SELECT appointmentstart, COUNT( appointmentstart ) AS antal FROM booking_appointment WHERE DATE_FORMAT( appointmentstart, '%Y-%m' ) = '2005-01' GROUP BY DATE_FORMAT( appointmentstart, '%Y-%m-%d' ) ORDER BY DATE_FORMAT( appointmentstart, '%Y-%m' )");

Men mangler stadig hvilken dag de enkelte antal hører til :-)
Avatar billede coderdk Praktikant
08. januar 2005 - 21:17 #12
Er det bedre? :)
Avatar billede sako Nybegynder
08. januar 2005 - 21:20 #13
ja det hjalp på begrænsningen af månederne - men kan ikke lige se hvordan jeg kan se hvilken dag de enkelte antal hører til... ellers er det helt perfekt
Avatar billede sako Nybegynder
08. januar 2005 - 21:26 #14
det bliver selvfølgelig hevet ud med appointmentstart - smid et svar alle pointene er velfortjent - mange tak for hjælpen
Avatar billede coderdk Praktikant
08. januar 2005 - 21:38 #15
Yessir :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester