![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 25.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mam tabele wpisy z polami
Wpisy: id nazwa utworzone I tam sie dodaja jakies wpisy raz na jakis czas. Teraz musze policzyc wedlug dat wszystkie wpisy dodane miedzy datami A i B... gdy nie ma wpisow pokazac 0. Wiem ze trzeba zrobic count(id) i group by wedlug "utworzone" ale gdy w danym dniu nie dodano rekordu sql nie zwroci 0 w danym dniu po prostu oleje ten dzien... Musze to programistycznie zalatwic czy moze ktos zna jakis madry sposob ? Z goru dzieki za pomoc. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Ja bym to zrobił tak. Utworzyłbym tabelę tymczasową, która zawierałaby wygenerowane dni z przedziału A do B, zrobił złączenie z tabelą zawierającą dane i już wtedy masz możliwość wyliczenia pozycji gdzie nie było danego dnia
![]() -------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 16.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
A może starczy wykorzystać po prostu :
1. klauzulę BETWEEN lub
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
@proffix: a może jednak nie, przecież jest napisane, że ma wyświetlać daty, których nie ma zapisanych w tabeli z danymi
-------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 27.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Podepnę się, mam podobne zadanie z datami.
Chciałbym zrobić count(*) wg miesięcy, tak aby orzymać mniej więcej: miesiac - count (*) styczeń - 34 luty - 46 .... |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 675 Pomógł: 15 Dołączył: 7.11.2004 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Kto pyta, nie błądzi...
Kto zbłądził, ten pyta... |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 27.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
No tak bardzo mądrze napisałem
![]() Nie dodałem tylko , że mam pole "data_operacji" w postaci "18.07.2007" a nie w postaci "styczeń, luty..." |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 675 Pomógł: 15 Dołączył: 7.11.2004 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Nie dodałem tylko , że mam pole "data_operacji" w postaci "18.07.2007" a nie w postaci "styczeń, luty..." To zmienia postać rzeczy ![]() Poniższe zapytanie musisz troszkę zmodyfikować (np. dodać brakujące miesiące ![]()
-------------------- Kto pyta, nie błądzi...
Kto zbłądził, ten pyta... |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 27.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 16.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
@proffix: a może jednak nie, przecież jest napisane, że ma wyświetlać daty, których nie ma zapisanych w tabeli z danymi No to ja nie wiem co to znaczy : "Teraz musze policzyc wedlug dat wszystkie wpisy dodane miedzy datami A i B... gdy nie ma wpisow pokazac 0" Chodzi chyba o ilość rekordów między datami a nie te daty gdzie nie ma rekordów ![]() Już się zamotałem ![]() |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 25.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
To zmienia postać rzeczy ![]() Poniższe zapytanie musisz troszkę zmodyfikować (np. dodać brakujące miesiące ![]()
Jak dla mnie malo czytelne... robic case dla kazdego miesiaca ? Lepiej uzyc funkcji DATE_FORMAT np: DATE_FORMAT(`filled_at`, '%m') pozniej array("1" => "styczen",...) i jazda z tematem Z tym ze jak wdanym miesiacu nie ma wpisu to nie zwroci Ci 0 ehhh |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 19:10 |