Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] przeszukanie i wylistowanie v.2
Forum PHP.pl > Forum > Bazy danych > MySQL
arky_
Witam!
Mam tabele 'rach' a w niej kolumny 'data' i 'kwota'.

2010-07-01 45
2010-07-01 48
2010-07-01 4
2010-07-01 5

2010-07-02 45
2010-07-02 65
2010-07-02 20
2010-07-02 32
2010-07-03 9

2010-07-03 4
2010-07-03 45
2010-07-03 45

jak zsumowac kazdy dzien i przedstawic wszystkie dni z sumami w danym miesiacu?
np.
styczen | luty
2010-01-01 45 | 2010-02-01 45
2010-01-02 5 |2010-02-02 45
2010-01-03 4 |2010-02-03 10
suma: 54 suma:100
Mchl
Kod
SELECT
  data, SUM(kwota) AS kwota
FROM
  rach
GROUP BY
  data
WHERE MONTH(data) = 7
arky_
otrzymuje błąd: Something is wrong in your syntax obok 'WHERE MONTH (data) = 7 ' w linii 1
vtuner
Cytat(arky_ @ 17.07.2010, 13:02:52 ) *
otrzymuje błąd: Something is wrong in your syntax obok 'WHERE MONTH (data) = 7 ' w linii 1


Bo pewnie masz pole "data" w formacie VARCHAR lub podobne, a nie TIMESTAMP itp.

Mchl, to rozwiązanie będzie działało tylko dla danego miesiąca, więc musiałby robić tyle zapytań ile jest miesięcy, co jest bzdurą.
Mchl
To dlatego że WHERE powinno być przed GROUP BY. Pomyliłem się.

Kod
SELECT
  data, SUM(kwota) AS kwota
FROM
  rach
WHERE
  MONTH(data) = 7
GROUP BY
  data


vtuner: Dlaczego bzdurą? Masz lepszy sposób? Chętnie zobaczę, bo ja zazwyczaj spinam LEFT JOINem 12 takich zapytań i jeżeli jest lepsza metoda to chętnie skorzystam.
arky_
Tak mam VARCHAR i co teraz?
Mchl
To zamień na DATE. Powinno się udać bez przygód.
vtuner
Cytat(Mchl @ 17.07.2010, 14:25:11 ) *
vtuner: Dlaczego bzdurą? Masz lepszy sposób? Chętnie zobaczę, bo ja zazwyczaj spinam LEFT JOINem 12 takich zapytań i jeżeli jest lepsza metoda to chętnie skorzystam.


No jak spinasz LEFT JOINem to masz jedno zapytanie, a nie 12 smile.gif Właśnie o to mi chodzi, żeby nie było 12 zapytań, tylko jedno.
Mchl
Ale to tak naprawdę jest przecież 12 zapytań (a nawet 13 bo trzeba skądś wziąć kolumnę ze wszstkimi dniami miesiąca winksmiley.jpg ) Przy tak krótkich zbiorach danych, czy złączysz w MySQL, czy po stronie aplikacji to dużej różnicy nie robi.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.