Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pytanie o zapytanie, Mam tabele instalacje, tabela instalacje ma następujące pola
mysz0n
post
Post #1





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 16.08.2006
Skąd: szy-ły

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


Pytanie o zapytanie:
Mam tabele instalacje, tabela instalacje ma następujące pola:
id_instalacji, id_klienta, data_instalacji, uwagi, id_serwisanta1, id_serwisanta2, status_instalacji.
Chce zrobić statystyki instalatorów, żeby mieć takie statystyki musze wrzucić do innego skryptu dane w stylu data=42*12*6*26*19&label=Michal*Mateusz*Tomasz*Rafal*Przemyslaw
na podstawie takiego ciągu – inny skrypt robi sobie wykres kołowy.
Wszystko zrobiłem sobie fajnie ale zapytanie patrzyło tylko na serwisanta1, serwisand 2 był pomijany, i teraz jak zrobić zapytaniem czy już w php takie coś żeby jeżeli na instalacje pojechal jeden serwisant to liczymy mu 1 punkt, jeżeli na instalacje pojechało 2 serwisantów – liczymy po 0,5 punkta. Jak najłatwiej i najszybciej to zrobić ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kefirek
post
Post #2





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


Cytat(mysz0n @ 27.02.2009, 21:16:52 ) *
da się to w jednym zapytaniu zrobic? (btw troche się bawie mysqlem a i takich if-ach w zapytaniu nie slyszalem - fajny bajer)


Tak da się.

Tak powinno dzialac na 99% dobrze
Łączysz id użytkowników z kolumny id_serwisanta1 i id_serwisanta2 w jedną kolumnę ID za pomocą UNION ALL i przydzielasz pkt potem Dajesz warunek WHERE by nie liczyło ID = 0 a na końcu grupujesz po ID i sumujesz liczbę pkt dla każdego użytkownika
  1. SELECT *, SUM(pkt) AS suma
  2. FROM (
  3. (SELECT *, id_serwisanta1 AS id, IF(id_serwisanta2 > 0, '0.5','1') AS pkt
  4. FROM instalacje) UNION ALL
  5. (SELECT *, id_serwisanta2 AS id, IF(id_serwisanta2 = 0, '1','0.5') AS pkt
  6. FROM instalacje)
  7. ) AS razem
  8. WHERE id <> 0
  9. GROUP BY id


Ten post edytował kefirek 28.02.2009, 10:54:37
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 8.10.2025 - 10:49