![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 24.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
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 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Kod SELECT
data, SUM(kwota) AS kwota FROM rach GROUP BY data WHERE MONTH(data) = 7 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 24.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
otrzymuje błąd: Something is wrong in your syntax obok 'WHERE MONTH (data) = 7 ' w linii 1
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 10 Dołączył: 23.08.2005 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
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ą. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 24.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Tak mam VARCHAR i co teraz?
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
To zamień na DATE. Powinno się udać bez przygód.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 10 Dołączył: 23.08.2005 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
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 (IMG:style_emoticons/default/smile.gif) Właśnie o to mi chodzi, żeby nie było 12 zapytań, tylko jedno. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Ale to tak naprawdę jest przecież 12 zapytań (a nawet 13 bo trzeba skądś wziąć kolumnę ze wszstkimi dniami miesiąca (IMG:style_emoticons/default/winksmiley.jpg) ) Przy tak krótkich zbiorach danych, czy złączysz w MySQL, czy po stronie aplikacji to dużej różnicy nie robi.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 18:50 |