![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Witajcie!
Mam tabelę: Cytat ID | ID_user | Month | Year | Kod | Opis | Wartosc Chciałbym teraz aby rekordy z ostatnich 3 miesięcy o danym ID_user oraz Kod sumowały (pole Wartość) się. Wymyśliłem zapytanie:
Problem w tym, że w miesiącu może być więcej niż jeden rekord dla ID_user oraz kodu, lub nie być go wcale. Chciałbym aby dzisiaj (maj 2012), zsumowało mi rekordy z luty 2012 + marzec 2012 + kwiecie 2012 bez różnicy czy tych wpisów jest 3, 6 czy 0. -------------------- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Użyj funkcji DATE_SUB i odejmij 3 miesiące, z tym że musisz odejmować od 1 dnia miesiąca tak by sumowac od 1 dnia miesiaca
http://dev.mysql.com/doc/refman/5.5/en/dat...nction_date-sub Ten post edytował skowron-line 22.05.2012, 14:11:00 -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Próbowałem, ale wychodzi mały potworek:
![]() -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) ![]() ![]() |
A jakiego typu jest kolumna Month?
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Int
-------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 253 Pomógł: 29 Dołączył: 18.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli implementować w mysql-u to może taka improwizacja:
-------------------- Kto rano wstaje ten leje jak z cebra.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 43 Dołączył: 9.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Skoro już te pola daty są oddzielnie w bazie, to można też wykorzystać PHP, może skorzysta z indeksów o ile są założone?
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 18 Pomógł: 3 Dołączył: 19.01.2011 Ostrzeżenie: (0%) ![]() ![]() |
Proponuje tak:
Jeżeli sumujesz cały wybrany zakres GROUP BY jest zbędne. Ten post edytował Firebright 28.05.2012, 08:45:47 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 20:20 |