Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Grupowanie statusów zleceń - statystyki
Forum PHP.pl > Forum > Bazy danych
115750
Zrobiłem sobie mini system do obsługi zleceń serwisowych.
Mam następujące statusy zleceń: nowe, odebrane, w naprawie, oczekuje na decyzję, gotowe do odbioru.
Udało mi sie już zrobić statystyki typu ile jest zgłoszeń z każdym z tych statusów. Zastosowałem poniższy kod:

  1. SELECT T1.id_status, T2.STATUS, count(T1.id_status) AS 'liczba'
  2. FROM orders T1, STATUS T2
  3. WHERE T1.id_status = T2.id
  4. GROUP BY id_status";


Teraz chciałbym zrobić statystykę mówiące ile jest gotowych zleceń a ile nie gotowych.
Gotowe to te ze statusami: odebrane i gotowe do odbioru
Niegotowe to cała reszta.

Macie pomysł na jakieś zgrabne zapytanie SQL najlepiej, żeby w wyniku otrzymać np.
niegotowe 7
gotowe 115

Jak sensownie przerobić powyższy kod?

Na obecną chwilą wymyśliłem coś takiego:

  1. SELECT "gotowe", count(*) AS 'liczba'
  2. FROM orders
  3. WHERE
  4. id_status=5 OR id_status=6 OR id_status=9 OR id_status=10
  5. UNION
  6. SELECT "niegotowe", count(*) AS 'liczba'
  7. FROM orders
  8. WHERE
  9. id_status=1 OR id_status=2 OR id_status=3 OR id_status=4 OR id_status=8


Niestety jak na mój gust to rozwiązanie za ładne nie jest.
Forti
w tabeli status utwórz sobie jakieś pole mówiące, że dany status to gotowe czy nie (1 /0 lub false/true) a przy zapytaniu po prostu kolejny warunek:

  1. SELECT T1.id_status, T2.STATUS, count(T1.id_status) AS 'liczba'
  2. FROM orders T1, STATUS T2
  3. WHERE T1.id_status = T2.id
  4. AND T2.jakies_pole = 1
  5. GROUP BY id_status";
  6.  
115750
Cytat(Forti @ 24.11.2014, 18:43:52 ) *
w tabeli status utwórz sobie jakieś pole mówiące, że dany status to gotowe czy nie (1 /0 lub false/true) a przy zapytaniu po prostu kolejny warunek:

Proste i zarazem genialne! Dzięki.
Trochę to zmodyfikowałem:

  1. SELECT T2.ready, count(*) AS 'liczba'
  2. FROM orders T1, STATUS T2
  3. WHERE T1.id_status = T2.id
  4. GROUP BY T2.ready
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.