dove sbagli?
2 partecipanti
Pagina 1 di 1
dove sbagli?
Ai maestri:
Ho cercato di adattare un pezzo di una query complessa elaborata tempo fa per ottenere numero di pazienti diabetici con prescrizione di anticoagulanti non eparina.
Parte della query funzionante che ho cercato di modificare:
(Select ' 01-Alcool 2011' As Esame, Count( Distinct a.codice) As N_pazienti From V_Pazienti p, cart_accert a Where p.codice=a.codice AND a.ac_Code Like '2904' And a.ac_val Is Not Null And Year( a.data_open) = 2011)
Union
(Select ' 05-Fumo 2011' As Esame, Count( Distinct a.codice) From V_Pazienti p, cart_accert a
Where p.codice=a.codice AND a.ac_Code Like '2832' And a.ac_val Is Not Null And Year( a.data_open) = 2011)
Union
(Select ' 07-DM con ASA 2011' As Esame, Count( Distinct t.codice) From V_Pazienti p, cart_pazpbl b, cart_terap t WHERE p.codice = b.codice AND p.codice=t.codice AND b.cp_code Like '250%' AND Years(p.datanasc, Today())>16 And t.co_atc Like 'B01AC06' And Year( t.data_open) = 2011)
Union
(Select ' 11-DM con Microalbuminuria 2011' As Esame, Count( Distinct b.codice) As pazienti From V_Pazienti p, cart_pazpbl b, cart_accert a WHERE p.codice = b.codice AND p.codice=a.codice AND b.cp_code Like '250%' AND Years(p.datanasc, Today())>16 And a.ac_nt_code IN ('90.33.4') And Year( a.data_open) = 2011)
Union
(Select ' 16-BPCO con BroncoDilatatori 2011' As Esame, Count( Distinct b.codice) As pazienti From V_Pazienti p, cart_pazpbl b, cart_terap t WHERE p.codice = b.codice AND p.codice=t.codice AND b.cp_code Like '496%' And ( t.co_atc Like 'R03AC%' Or t.co_atc Like 'R03AK%' ) And Year( t.data_open) = 2011)
ORDER BY 1
ho cercato di variare x ottenere anticoagulanti (B01AC) segnati nel 2012 in tutti i diabetici. ma mi torna 0... come mai?
(Select ' 07-DM con anticoagulanti 2012' As Esame, Count( Distinct t.codice) From V_Pazienti p, cart_pazpbl b, cart_terap t WHERE p.codice = b.codice AND p.codice=t.codice AND b.cp_code Like '250%' And t.co_atc Like 'B01AC' And Year( t.data_open) = 2012)
se volessi indicare un preciso lasso di tempo e non tutto l'anno come imposto e con quale comando? (AND t.data_open BETWEEN '2012/01/01' AND '2013/12/31' ???)
altro da trovare: diabetici che hanno il calcolo di rischio cardiovascolare in cartella ( calcolo ultimi 10
anni),%diabetici con dato cockroft rilevato
(ultimi 15 MESI) che hanno valore
< 60
Buona domenica
Mario
Ho cercato di adattare un pezzo di una query complessa elaborata tempo fa per ottenere numero di pazienti diabetici con prescrizione di anticoagulanti non eparina.
Parte della query funzionante che ho cercato di modificare:
(Select ' 01-Alcool 2011' As Esame, Count( Distinct a.codice) As N_pazienti From V_Pazienti p, cart_accert a Where p.codice=a.codice AND a.ac_Code Like '2904' And a.ac_val Is Not Null And Year( a.data_open) = 2011)
Union
(Select ' 05-Fumo 2011' As Esame, Count( Distinct a.codice) From V_Pazienti p, cart_accert a
Where p.codice=a.codice AND a.ac_Code Like '2832' And a.ac_val Is Not Null And Year( a.data_open) = 2011)
Union
(Select ' 07-DM con ASA 2011' As Esame, Count( Distinct t.codice) From V_Pazienti p, cart_pazpbl b, cart_terap t WHERE p.codice = b.codice AND p.codice=t.codice AND b.cp_code Like '250%' AND Years(p.datanasc, Today())>16 And t.co_atc Like 'B01AC06' And Year( t.data_open) = 2011)
Union
(Select ' 11-DM con Microalbuminuria 2011' As Esame, Count( Distinct b.codice) As pazienti From V_Pazienti p, cart_pazpbl b, cart_accert a WHERE p.codice = b.codice AND p.codice=a.codice AND b.cp_code Like '250%' AND Years(p.datanasc, Today())>16 And a.ac_nt_code IN ('90.33.4') And Year( a.data_open) = 2011)
Union
(Select ' 16-BPCO con BroncoDilatatori 2011' As Esame, Count( Distinct b.codice) As pazienti From V_Pazienti p, cart_pazpbl b, cart_terap t WHERE p.codice = b.codice AND p.codice=t.codice AND b.cp_code Like '496%' And ( t.co_atc Like 'R03AC%' Or t.co_atc Like 'R03AK%' ) And Year( t.data_open) = 2011)
ORDER BY 1
ho cercato di variare x ottenere anticoagulanti (B01AC) segnati nel 2012 in tutti i diabetici. ma mi torna 0... come mai?
(Select ' 07-DM con anticoagulanti 2012' As Esame, Count( Distinct t.codice) From V_Pazienti p, cart_pazpbl b, cart_terap t WHERE p.codice = b.codice AND p.codice=t.codice AND b.cp_code Like '250%' And t.co_atc Like 'B01AC' And Year( t.data_open) = 2012)
se volessi indicare un preciso lasso di tempo e non tutto l'anno come imposto e con quale comando? (AND t.data_open BETWEEN '2012/01/01' AND '2013/12/31' ???)
altro da trovare: diabetici che hanno il calcolo di rischio cardiovascolare in cartella ( calcolo ultimi 10
anni),%diabetici con dato cockroft rilevato
(ultimi 15 MESI) che hanno valore
< 60
Buona domenica
Mario
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5390
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Re: dove sbagli?
Una l'ho capita !!! non avevo messo %% a completare il codice ATC..mario shirt ha scritto:Ai maestri:
ho cercato di variare x ottenere anticoagulanti (B01AC) segnati nel 2012 in tutti i diabetici. ma mi torna 0... come mai?
(Select ' 07-DM con anticoagulanti 2012' As Esame, Count( Distinct t.codice) From V_Pazienti p, cart_pazpbl b, cart_terap t WHERE p.codice = b.codice AND p.codice=t.codice AND b.cp_code Like '250%' And t.co_atc Like 'B01AC' And Year( t.data_open) = 2012)
Mario
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5390
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Re: dove sbagli?
Prova questa:
(Select ' 01-DM+anticoagulanti ultimo anno' As Terapia_o_Esame, Count( Distinct t.codice) As N_Pazienti From V_Pazienti p, cart_pazpbl b, cart_terap t WHERE p.codice = b.codice AND p.codice=t.codice AND b.cp_code Like '250%' And t.co_atc Like 'B01AC%' And t.data_open BETWEEN Today()-365 AND Today())
Union
(Select ' 02-DM+RCV ultimi 10 anni' As Esame, Count( Distinct b.codice) As pazienti From V_Pazienti p, cart_pazpbl b, cart_accert a WHERE p.codice = b.codice AND p.codice=a.codice AND b.cp_code Like '250%' And a.ac_code = '3951' And a.data_open BETWEEN Today()-3650 AND Today())
Union
(Select ' 03-DM+Cockroft ultimi 15 mesi' As Esame, Count( Distinct b.codice) As pazienti From V_Pazienti p, cart_pazpbl b, cart_accert a WHERE p.codice = b.codice AND p.codice=a.codice AND b.cp_code Like '250%' And a.ac_code = '3952' And a.ac_val < '60' And a.data_open BETWEEN Today()-456 AND Today())
ORDER BY 1
Per indicare un periodo preciso va bene la formula che hai indicato (data_open BETWEEN 'data inizio' AND 'data fine') . La data va indicata come AAAA/MM/GG.
(Select ' 01-DM+anticoagulanti ultimo anno' As Terapia_o_Esame, Count( Distinct t.codice) As N_Pazienti From V_Pazienti p, cart_pazpbl b, cart_terap t WHERE p.codice = b.codice AND p.codice=t.codice AND b.cp_code Like '250%' And t.co_atc Like 'B01AC%' And t.data_open BETWEEN Today()-365 AND Today())
Union
(Select ' 02-DM+RCV ultimi 10 anni' As Esame, Count( Distinct b.codice) As pazienti From V_Pazienti p, cart_pazpbl b, cart_accert a WHERE p.codice = b.codice AND p.codice=a.codice AND b.cp_code Like '250%' And a.ac_code = '3951' And a.data_open BETWEEN Today()-3650 AND Today())
Union
(Select ' 03-DM+Cockroft ultimi 15 mesi' As Esame, Count( Distinct b.codice) As pazienti From V_Pazienti p, cart_pazpbl b, cart_accert a WHERE p.codice = b.codice AND p.codice=a.codice AND b.cp_code Like '250%' And a.ac_code = '3952' And a.ac_val < '60' And a.data_open BETWEEN Today()-456 AND Today())
ORDER BY 1
Per indicare un periodo preciso va bene la formula che hai indicato (data_open BETWEEN 'data inizio' AND 'data fine') . La data va indicata come AAAA/MM/GG.
Re: dove sbagli?
Admin ha scritto:Prova questa:
(Select ' 01-DM+anticoagulanti ultimo anno' As Terapia_o_Esame, Count( Distinct t.codice) As N_Pazienti From V_Pazienti p, cart_pazpbl b, cart_terap t WHERE p.codice = b.codice AND p.codice=t.codice AND b.cp_code Like '250%' And t.co_atc Like 'B01AC%' And t.data_open BETWEEN Today()-365 AND Today())
Union
(Select ' 02-DM+RCV ultimi 10 anni' As Esame, Count( Distinct b.codice) As pazienti From V_Pazienti p, cart_pazpbl b, cart_accert a WHERE p.codice = b.codice AND p.codice=a.codice AND b.cp_code Like '250%' And a.ac_code = '3951' And a.data_open BETWEEN Today()-3650 AND Today())
Union
(Select ' 03-DM+Cockroft ultimi 15 mesi' As Esame, Count( Distinct b.codice) As pazienti From V_Pazienti p, cart_pazpbl b, cart_accert a WHERE p.codice = b.codice AND p.codice=a.codice AND b.cp_code Like '250%' And a.ac_code = '3952' And a.ac_val < '60' And a.data_open BETWEEN Today()-456 AND Today())
ORDER BY 1
Per indicare un periodo preciso va bene la formula che hai indicato (data_open BETWEEN 'data inizio' AND 'data fine') . La data va indicata come AAAA/MM/GG.
Ok va bene, grazie
Mario
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5390
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Pagina 1 di 1
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.