Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zliczanie wyników tabel z datami
trze_
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.06.2013

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


Witam

Mam tabele z danymi w uproszczeniu wygląda ona tak: nazwa, data_rej, data_zaw,data_wzn, w której chce policzyć rekordy spełniające warunki

  1. SELECT count(*)
  2. FROM zestawienie
  3. WHERE data_rej BETWEEN 20130501 AND 20130531
  4. UNION
  5. SELECT count(*)
  6. FROM zestawienie
  7. WHERE data_zaw BETWEEN 20130501 AND 20130531
  8. UNION
  9. SELECT count(*)
  10. FROM zestawienie
  11. WHERE data_wzn BETWEEN 20130501 AND 20130531


brak mi pomysłu jak uprościć zapytanie by nie stosować uniom, ma ktoś jakiś pomysł ?

Ten post edytował trze_ 2.12.2013, 17:38:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
mmmmmmm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


Przerzucić dne do jednej tabeli. I tak juz trzymać.
Go to the top of the page
+Quote Post
trze_
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.06.2013

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


Dane są w jednej tabeli, chodzi mi bardziej o uproszczenie zapytania w sytuacji jeśli będę zmieniał zakres dat (miesiące) do policzenia
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #4





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


Napisz DOKŁADNIE o co ci chodzi. Napisałeś dwa posty, a w każdym co innego... Może chodzi ci o zwykłe grupowanie? GROUP BY
Go to the top of the page
+Quote Post
trze_
post
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.06.2013

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


tabela wygląda w uproszczeniu tak

  1. nazwa | data_rej | data_zaw | data_wzn |
  2. aaaaa | 20130301 | 20130501 | 20130501 |
  3. aaaab | 20130401 | 20130501 | 20130514 |
  4. aaaac | 20120104 | 20130501 | 20130531 |
  5. aaaad | 20130503 | | |


zapytanie mam takie:

  1. SELECT
  2. count( case when data_rej BETWEEN 20130501 AND 20130531 then data_rej end) AS rej,
  3. count( case when data_zaw BETWEEN 20130501 AND 20130531 then data_zaw end) AS zaw,
  4. FROM zestawienia


i o to właśnei mi chodziło w tych 3 postach

Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 08:04