Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> konstrukcja zapytania?
mwaloos
post 17.01.2008, 19:31:46
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 13.11.2007

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


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

Ten post edytował mwaloos 17.01.2008, 21:17:13


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
kitol
post 18.01.2008, 10:09:18
Post #2





Grupa: Zarejestrowani
Postów: 162
Pomógł: 26
Dołączył: 19.01.2007

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


  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


Ten post edytował kitol 18.01.2008, 10:14:30
Go to the top of the page
+Quote Post
mwaloos
post 24.01.2008, 10:11:46
Post #3





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 13.11.2007

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


dziekuje bardzo - przeanalizowalem i wszsytko zrozumiale smile.gif

pozdrawiam


--------------------
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 17:11