Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: konstrukcja zapytania?
Forum PHP.pl > Forum > Bazy danych > MySQL
mwaloos
Witam,
mam tabele historia

id_urzadzenie | status |

tabela ma takie wpisy
1 | a
1 | a
1 | b
2 | c
2 | d
3 | a
4 | a

zadaje pytanie ktore w wyniku daje odpowiedz ze np. id_urzadzenie 1 ma 2 statusy a, oraz 1 ma 1 status b
poprzez polecenie

$pytanie = mysql_query("SELECT id_urzadzenie,status, COUNT(*) AS ile FROM historia GROUP BY status,id_urzadzenie ORDER BY 3 DESC");


w wyniku zapytania otrzymuje powyzsze zalozona odpowiedz,

jednak chcialbym dodatkowo policzyc z ile jest odpowiednich statusow tzn mam 4 - a, 1 - b, 1 - c, 1 -d, ile jest wszystkich statusow teraz jest ich 7 oraz wyciagnac wartosci max dla statusow?

czy mozna zawrzec to w jednym poleceniu? i jak?

czy mozna napisac takie polecenie??

$pytanie = mysql_query("SELECT id_urzadzenie,status, COUNT(*) AS ile, SUM(ile) AS wynik, MAX(ile) AS maks FROM historia GROUP BY status,id_urzadzenie ORDER BY 3 DESC");

dziekuje pozdrawiam
kitol
  1. SELECT * FROM ( SELECT id_urzadzenie,STATUS, COUNT(*) AS ile, '0' AS co_to FROM historia GROUP BY STATUS,id_urzadzenie ORDER BY ile DESC ) t1
  2. UNION ALL
  3. SELECT '0', STATUS,COUNT(*) AS ile, '1' FROM historia GROUP BY STATUS
  4. UNION ALL
  5. SELECT '0','',COUNT(*), '2' FROM historia UNION ALL
  6. SELECT '0',STATUS,MAX(id_urzadzenie),'3' FROM historia GROUP BY STATUS


w odpowiedzi dostajesz tabelkę w której kolumna co_to określa co jest zawarte w danym wierszu.
0 - jak w twoim pierwszym zapytaniu
1 - ilość odpowiednich statusów
2 - ilość wszystkich statusów
3 - max statusów
  1. id_urzadzenie STATUS ile co_to
  2. 1 a 2 0
  3. 1 b 1 0
  4. 2 c 1 0
  5. 2 d 1 0
  6. 3 a 1 0
  7. 4 a 1 0
  8. 0 a 4 1
  9. 0 b 1 1
  10. 0 c 1 1
  11. 0 d 1 1
  12. 0 7 2
  13. 0 a 4 3
  14. 0 b 1 3
  15. 0 c 2 3
  16. 0 d 2 3
mwaloos
dziekuje bardzo - przeanalizowalem i wszsytko zrozumiale smile.gif

pozdrawiam
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.