Query Complessa, Sql

Salve stò impazzendo da stanotte su questa query :o

Scopo della query ricavare il totale dei pazienti trattati da ogni singolo fisioterapista(TDR)

Nell’immagine allegata ci sono le 4 tabelle interrogate, al momento riesco a ricavare il totale pazienti trattati ma non riesco a prendere quei fisioterapisti che non hanno nessun paziente in carico… di solito questi casi si risolvono usando RIGHT o LEFT join ma non nel mio caso :unsure:


SELECT 

tdr_id, 

CONCAT_WS('@',tdr_cognome,tdr_nome, tdr_sesso, tdr_id), 

COUNT(cc_id) /*<--- conteggio dei pazienti trattati */


FROM   


tbl_cartellaclinica INNER JOIN tbl_paziente ON tbl_cartellaclinica.pz_fk_id = tbl_paziente.id 

        JOIN (

                SELECT tbl_cartellaclinica.pz_fk_id, MAX(tbl_progetto.pr_id) AS pr_id

                FROM tbl_cartellaclinica

                    JOIN tbl_progetto

                        ON tbl_progetto.cc_id_fk = tbl_cartellaclinica.cc_id

                        WHERE 

                       

                        tbl_progetto.is_ripresa_in_carico=0 

                        GROUP BY tbl_cartellaclinica.cc_id

                ) AS t 

                

ON t.pz_fk_id = tbl_cartellaclinica.pz_fk_id JOIN tbl_progetto ON 

tbl_progetto.cc_id_fk = tbl_cartellaclinica.cc_id

AND tbl_progetto.pr_id = t.pr_id RIGHT OUTER JOIN tbl_fisioterapista

ON tbl_fisioterapista.tdr_id = tbl_progetto.pr_fisioterapista_fk  


WHERE NOT(tbl_progetto.is_dimissione=1)


GROUP BY tbl_fisioterapista.tdr_id 



3263

query_tdr.jpg

grazie :)

il problema e’

WHERE NOT(tbl_progetto.is_dimissione=1)

Se la metti in where ti filtra i record che non hanno un progetto, mettila nella on invece

… non posso crederci … una notte (e mezza giornata) :-[

mitico zaccaria, grazie infinite :D

Solo che ora dal conteggio non mi esclude il progetto con “is_dimissione=1:blink:

se il totale pazienti del fisioter. X è 10 e uno di questi 10 paz. si dimette, dovrebbe scendere a 9 il count().

tnx

Devi mettere il controllo tbl_progetto.is_dimissione=1 nella on dei pazienti

giusto, grazie mille ;)


ON t.pz_fk_id = tbl_cartellaclinica.pz_fk_id JOIN tbl_progetto ON 

                    tbl_progetto.cc_id_fk = tbl_cartellaclinica.cc_id

                    AND 

                     tbl_progetto.pr_id = t.pr_id 

                    AND

                     tbl_progetto.is_dimissione=0