Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zapytanie dot. dat
slash^
post
Post #1





Grupa: Zarejestrowani
Postów: 278
Pomógł: 36
Dołączył: 9.04.2003
Skąd: Płock

Ostrzeżenie: (0%)
-----


Witam

Mam taka oto strukture tabeli:

  1. CREATE TABLE `dni` (
  2. `dzien` date NOT NULL DEFAULT '0000-00-00',
  3. `licznik` bigint(20) NOT NULL DEFAULT '0'
  4. ) TYPE=MyISAM;


baza zawiera ok. 600 rekordów z liczbami odwiedzic w danym dniu. I teraz moje pytanie brzmi:
Jak napisac zapytanie, które by zwrocilo mi sume wizyt z poszczegolnych miesiecy, tj.
styczen 2000 - 150 odwiedzin
luty 2000 - 200 odwiedzin
marzec 2000 - 120 odwiedzin

itd...

help (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
Ar2r
post
Post #2





Grupa: Zarejestrowani
Postów: 140
Pomógł: 16
Dołączył: 12.06.2002
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Witam,

Możesz posłużyć się takimi instrukcjami jak SUM, MONTH, YEAR np.

gdy chcesz za konkretny miesiąc i rok:
SELECT SUM(licznik) FROM dni WHERE MONTH(dzien)=XX AND YEAR(dzien)=XXXX
(IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)
Go to the top of the page
+Quote Post
harmag
post
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 17.08.2004

Ostrzeżenie: (0%)
-----


ja bym wykorzystal do tego celu grupowanie wedlug miesiaca.
wydaje mi sie ze mozna by to zrobic przy pomocy jednego podzapytania przyjmujac dwa kryteria grupowania - rok i miesiac, ale nie przychodzi mi to teraz do glowy, wiec pokaze ci inne (mniej efektywne) rozwiazanie.

  1. <?php
  2.  
  3. //wybiermay sobie poszczegolne lata z tabeli
  4. $query = &#092;"select DATE_FORMAT(data,'%Y') as rok from dni group by DATE_FORMAT(data,'%Y') order by rok DESC;\";
  5. $result = mysql_query($query);
  6.  
  7. //dla kazdego roku zliczamy ilosc odwiedzin w miesiacu
  8. while($row = mysql_fetch_array($result))
  9. {
  10. $query2 = &#092;"select DATE_FORMAT(data,'%m') as miesiac,sum(licznik) as ilosc from dni where DATE_FORMAT(data,'%Y') = \".$row[\"rok\"].\" group by DATE_FORMAT(data,'%m') order by miesiac DESC;\";
  11. $result2 = mysql_query($query2);
  12.  
  13. echo&#092;"rok - \".$row[\"rok\"];
  14.  
  15. while($row2 = mysql_fetch_array($result2))
  16. {
  17. echo&#092;"miesiac - \".$row2[\"miesiac\"].\" ilosc odwiedzin - \".$row2[\"ilosc\"];
  18. }
  19. }
  20.  
  21. ?>


mam nadzieje ze wiekszej gafy nie palnalem bo pisale mtak troszke z palca a tak troszke z jakiegos tam mojego skryptu wycinalem. nazyw tabel i kolumn staralem sie dopasowac do twoich.

pozdr.
Go to the top of the page
+Quote Post
popbart
post
Post #4





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

Ostrzeżenie: (0%)
-----


  1. SELECT date_format(dzien,'%Y-%m') AS miesiac, sum(licznik) AS suma
  2. FROM dni GROUP BY miesiac


Ten post edytował popbart 29.11.2004, 23:42:58
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 04:51