Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ilość osób, które mają wizytę w wybranym okresie czasu, ale więcej niż X ogólem
monikar
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 23.03.2022

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


Hej, próbuje utworzyć zapytanie do bazy, które zwróci mi:
- ilość osób danego dnia, które:
- mają wizytę w wybranym okresie czasu i :
- będą to tylko te osoby, które ogółem mają więcej niż dwie wizyty

Mam dwie tabele: patient i visit. visit łączy się z patient po patientid. Przyjmujemy, że patient to pacjenci , a visit to wizyty tych pacjentów, co za tym idzie każdy pacjent może mieć X wizyt.
Mam problem z ograniczeniem tych dat. To co udało mi się do tej pory stworzyć (zapytanie nie zwraca żądanej wartości):

  1. SELECT DISTINCT(PatientID), Patient.firstname, patient.lastname, COUNT(DISTINCT(PatientID)), count(*),
  2. (SELECT count(*) FROM Visit v
  3. JOIN Patient p ON v.patientID = p.id
  4. WHERE v.x_removetime IS NULL
  5. AND p.ID = Patient.Id
  6. ) AS a
  7. FROM Patient
  8. JOIN Visit ON Visit.patientID = patient.id
  9. WHERE Visit.X_RemoveTime IS NULL
  10. AND Visit.StartTime BETWEEN '2022-03-01' AND '2022-03-30'
  11. GROUP BY Patient.id
  12. HAVING count(*) > 2


Proszę o wskazówki lub jakąś inną pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




No tak, nie doczytalem

  1. SELECT p.id, p.firstname, p.lastname, count(p.id) FROM Patient p
  2. LEFT JOIN Visit v ON v.patientID = p.id
  3. WHERE
  4. p.id IN (SELECT patiendID FROM Visit GROUP BY patientID HAVING count(patientID) > 2)
  5. AND
  6.  
  7. v.X_RemoveTime IS NULL
  8. AND v.StartTime BETWEEN '2022-03-01' AND '2022-03-30'
  9. GROUP BY p.id
Go to the top of the page
+Quote Post

Posty w temacie


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: 28.12.2025 - 02:00