FORUM PER UTENTI MILLEWIN
Attenzione !
Per intervenire sul forum è necessario essere registrati e connessi.

L'Amministratore

****************************************************
“Se tu hai una mela ed io ho una mela, e ce la scambiamo, alla fine tu ed io avremo sempre una mela ciascuno.
Ma se tu hai un’idea ed io ho un’idea, e ce la scambiamo, allora avremo entrambi due idee”.

George Bernard Shaw
****************************************************

Unisciti al forum, è facile e veloce

FORUM PER UTENTI MILLEWIN
Attenzione !
Per intervenire sul forum è necessario essere registrati e connessi.

L'Amministratore

****************************************************
“Se tu hai una mela ed io ho una mela, e ce la scambiamo, alla fine tu ed io avremo sempre una mela ciascuno.
Ma se tu hai un’idea ed io ho un’idea, e ce la scambiamo, allora avremo entrambi due idee”.

George Bernard Shaw
****************************************************
FORUM PER UTENTI MILLEWIN
Vuoi reagire a questo messaggio? Crea un account in pochi click o accedi per continuare.

help query

3 partecipanti

Andare in basso

help query Empty help query

Messaggio  mario shirt Mar 6 Mar 2012 - 0:46

Ai maestri delle query: questa dovrebbe essere facilissima, mi serve estrarre nome e telefono di ultra 65 enni maschi e sapere se sono ipertesi, diabetici e quanto fumano

grazie Mario
mario shirt
mario shirt
Membro Junior
Membro Junior

Messaggi : 254
Punti : 5150
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 68

Torna in alto Andare in basso

help query Empty Re: help query

Messaggio  GiampiMaz Gio 8 Mar 2012 - 9:14

Salve, puoi provare questa, estrae maschi di età 65 o oltre convenzionati col telefono e mette sì se ipertesi e se diabetici. Mostra il fumo.
Al posto di % metti il tuo codice di medicina di gruppo se necessario.
Prova e sappimi dire
giampiero


SELECT distinct p.cognome, p.nome, n.pa_tel +' / '+n.tel_cell as _telefono_,
(select distinct 'si' from cart_pazpbl pr where
pr.codice=p.codice and (
pr.cp_code like '401%' or
pr.cp_code like '402%' or
pr.cp_code like '403%' or
pr.cp_code like '404%' or
pr.cp_code like '405%' or
pr.cp_code like '362.11'
) ) ipertensione,
(select distinct 'si' from cart_pazpbl pr where
pr.codice=p.codice and (
pr.cp_code like '250%'
) ) diabete,

(Select
CAST((case a.ac_val
WHEN 'O' THEN 'fumatore occasionale'
WHEN 'V' THEN 'fumatore passivo'
WHEN '1' THEN 'meno di 10 sigarette al giorno'
WHEN '2' THEN 'tra 10 e 20 sigarette al giorno'
WHEN '3' THEN 'oltre 20 sigarette al giorno'
WHEN 'X' THEN 'mai fumato e mai fumerà'
WHEN 'N' THEN 'mai fumato'
WHEN 'E' THEN 'ex fumatore da oltre 1 anno'
WHEN 'M' THEN 'ex fumatore'
WHEN 'F' THEN 'ex forte fumatore da oltre 10 anni'
WHEN 'Z' THEN 'ex forte fumatore da oltre 1 anno'
WHEN 'U' THEN 'ex forte fumatore'
WHEN 'P' THEN 'fumatore di pipa'
WHEN 'S' THEN 'fumatore di sigaro'
ELSE 'Non_Registrato' END) as char(31)) Tipo_fumatore
FROM cart_accert a
WHERE a.codice=p.codice AND a.ac_des like 'FUMO' and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_des Like 'FUMO' and (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.ac_val is not null))
_Fumo_

FROM pazienti p, nos_002 n, cart_accert a
WHERE p.codice =n.codice and p.codice=a.codice
AND p.sesso like 'M'
AND (days(p.nascita, TODAY ( ))/365) >= 65

And p.pa_convenzione = 'S' And (n.pa_drevoca Is Null Or n.pa_drevoca > Today() )
And p.decesso is null
and n.pa_medi = '%'


order by 1,2
GiampiMaz
GiampiMaz
Membro Junior
Membro Junior

Messaggi : 122
Punti : 4948
Voti per importanza dei messaggi : 33
Data d'iscrizione : 20.02.11

Torna in alto Andare in basso

help query Empty Re: help query

Messaggio  mario shirt Ven 9 Mar 2012 - 14:29

GiampiMaz ha scritto:Salve, puoi provare questa, estrae maschi di età 65 o oltre convenzionati col telefono e mette sì se ipertesi e se diabetici. Mostra il fumo.
Al posto di % metti il tuo codice di medicina di gruppo se necessario.
Prova e sappimi dire
giampiero


perfetto grazie

Mario

p.s. mi piacerebbe imparare "meglio" le basi.. per provare ... almeno senza Mad
mario shirt
mario shirt
Membro Junior
Membro Junior

Messaggi : 254
Punti : 5150
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 68

Torna in alto Andare in basso

help query Empty Re: help query

Messaggio  mario shirt Sab 19 Apr 2014 - 14:06

GiampiMaz ha scritto:Salve, puoi provare questa, estrae maschi di età 65 o oltre convenzionati col telefono e mette sì se ipertesi e se diabetici. Mostra il fumo.
Al posto di % metti il tuo codice di medicina di gruppo se necessario.
Prova e sappimi dire
giampiero


SELECT distinct p.cognome, p.nome,  n.pa_tel +' / '+n.tel_cell as _telefono_,
(select distinct 'si' from cart_pazpbl pr where
pr.codice=p.codice and (
pr.cp_code like '401%' or
pr.cp_code like '402%' or
pr.cp_code like '403%' or
pr.cp_code like '404%' or
pr.cp_code like '405%' or
pr.cp_code like '362.11'
) ) ipertensione,
(select distinct 'si' from cart_pazpbl pr where
pr.codice=p.codice and (
pr.cp_code like '250%'
) ) diabete,

(Select
CAST((case a.ac_val
WHEN 'O' THEN 'fumatore occasionale'
WHEN 'V' THEN 'fumatore passivo'
WHEN '1' THEN 'meno di 10 sigarette al giorno'
WHEN '2' THEN 'tra 10 e 20 sigarette al giorno'
WHEN '3' THEN 'oltre 20 sigarette al giorno'
WHEN 'X' THEN 'mai fumato e mai fumerà'
WHEN 'N' THEN 'mai fumato'
WHEN 'E' THEN 'ex fumatore da oltre 1 anno'
WHEN 'M' THEN 'ex fumatore'
WHEN 'F' THEN 'ex forte fumatore da oltre 10 anni'
WHEN 'Z' THEN 'ex forte fumatore da oltre 1 anno'
WHEN 'U' THEN 'ex forte fumatore'
WHEN 'P' THEN 'fumatore di pipa'
WHEN 'S' THEN 'fumatore di sigaro'
ELSE 'Non_Registrato' END) as char(31)) Tipo_fumatore
FROM cart_accert a
WHERE a.codice=p.codice AND a.ac_des like 'FUMO' and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_des Like 'FUMO' and (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.ac_val is not null))
_Fumo_

FROM pazienti p, nos_002 n, cart_accert a
WHERE p.codice =n.codice and  p.codice=a.codice
AND p.sesso like 'M'                
AND (days(p.nascita, TODAY ( ))/365) >= 65

And p.pa_convenzione = 'S' And (n.pa_drevoca Is Null Or n.pa_drevoca > Today() )
And p.decesso is null
and n.pa_medi = '%'


order by 1,2

Ho provato a modificare questa vecchia query: tolto telefono, sesso, data nascita, n.pa_medi funziona bene ma su 1560 paz da analizzare mi estrae 1470 righe.
come mai? era pratica volevo trovare il dato fumo segnato su tutti i miei pazienti e segnalare i diabetici e gli ipertesi (si deve raggiungere una percentuale variabile sul dato fumo segnato in totale e sulle 2 patologie)  Volendo mettere le iniziali al posto di nome e cognome e l'eta' come modificare?

Grazie e doppia BUONA PASQUA a chi leggera' e rispondera' in questo periodo festivo :-)

Mario
mario shirt
mario shirt
Membro Junior
Membro Junior

Messaggi : 254
Punti : 5150
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 68

Torna in alto Andare in basso

help query Empty Re: help query

Messaggio  Admin Mar 22 Apr 2014 - 0:45

Prova questa:

SELECT DISTINCT p.cognome, p.nome,  CAST(Codice_fiscale as CHAR (21)), LEFT(p.cognome,1) C, LEFT(p.nome,1) N,
(select distinct 'si' from cart_pazpbl pr where
pr.codice=p.codice and (
pr.cp_code like '401%' or
pr.cp_code like '402%' or
pr.cp_code like '403%' or
pr.cp_code like '404%' or
pr.cp_code like '405%' or
pr.cp_code like '362.11'
) ) ipertensione,
(select distinct 'si' from cart_pazpbl pr where
pr.codice=p.codice and (
pr.cp_code like '250%'
) ) diabete,

(Select
CAST((case a.ac_val
WHEN 'O' THEN 'fumatore occasionale'
WHEN 'V' THEN 'fumatore passivo'
WHEN '1' THEN 'meno di 10 sigarette al giorno'
WHEN '2' THEN 'tra 10 e 20 sigarette al giorno'
WHEN '3' THEN 'oltre 20 sigarette al giorno'
WHEN 'X' THEN 'mai fumato e mai fumerà'
WHEN 'N' THEN 'mai fumato'
WHEN 'E' THEN 'ex fumatore da oltre 1 anno'
WHEN 'M' THEN 'ex fumatore'
WHEN 'F' THEN 'ex forte fumatore da oltre 10 anni'
WHEN 'Z' THEN 'ex forte fumatore da oltre 1 anno'
WHEN 'U' THEN 'ex forte fumatore'
WHEN 'P' THEN 'fumatore di pipa'
WHEN 'S' THEN 'fumatore di sigaro'
ELSE 'Non_Registrato' END) as char(35)) Tipo_fumatore
FROM cart_accert a
WHERE a.codice=p.codice AND a.ac_des like 'FUMO' and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_des Like 'FUMO' and (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.ac_val is not null))
_Fumo_

FROM pazienti p LEFT OUTER JOIN nos_002 n ON p.codice =n.codice
WHERE p.sesso like 'M'                
AND(days(p.nascita, TODAY ( ))/365) >= 65
And p.pa_convenzione = 'S'
 And (n.pa_drevoca Is Null Or n.pa_drevoca > Today() )
And p.decesso is null
and n.pa_medi like '%'
order by 1,2


Attenzione, nell'estrazione devi lasciare cognome, nome e codice fiscale altrimenti vengono estratti molte righe in meno essendoci più casi di iniziali identiche ed anche casi di omonimia che verrebbero considerati come riga unica non essendo distinguibili tra loro. In un secondo momento è possibile cancellare queste colonne.
Admin
Admin
Admin
Admin

Messaggi : 537
Punti : 5453
Voti per importanza dei messaggi : 89
Data d'iscrizione : 20.02.11
Località : CASERTA

https://utentimillewin.forumattivo.it

Torna in alto Andare in basso

help query Empty Re: help query

Messaggio  mario shirt Mar 22 Apr 2014 - 10:19

Admin ha scritto:Prova questa:

SELECT DISTINCT p.cognome, p.nome,  CAST(Codice_fiscale as CHAR (21)), LEFT(p.cognome,1) C, LEFT(p.nome,1) N,
(select distinct 'si' from cart_pazpbl pr where
pr.codice=p.codice and (
pr.cp_code like '401%' or
pr.cp_code like '402%' or
pr.cp_code like '403%' or
pr.cp_code like '404%' or
pr.cp_code like '405%' or
pr.cp_code like '362.11'
) ) ipertensione,
(select distinct 'si' from cart_pazpbl pr where
pr.codice=p.codice and (
pr.cp_code like '250%'
) ) diabete,

(Select
CAST((case a.ac_val
WHEN 'O' THEN 'fumatore occasionale'
WHEN 'V' THEN 'fumatore passivo'
WHEN '1' THEN 'meno di 10 sigarette al giorno'
WHEN '2' THEN 'tra 10 e 20 sigarette al giorno'
WHEN '3' THEN 'oltre 20 sigarette al giorno'
WHEN 'X' THEN 'mai fumato e mai fumerà'
WHEN 'N' THEN 'mai fumato'
WHEN 'E' THEN 'ex fumatore da oltre 1 anno'
WHEN 'M' THEN 'ex fumatore'
WHEN 'F' THEN 'ex forte fumatore da oltre 10 anni'
WHEN 'Z' THEN 'ex forte fumatore da oltre 1 anno'
WHEN 'U' THEN 'ex forte fumatore'
WHEN 'P' THEN 'fumatore di pipa'
WHEN 'S' THEN 'fumatore di sigaro'
ELSE 'Non_Registrato' END) as char(35)) Tipo_fumatore
FROM cart_accert a
WHERE a.codice=p.codice AND a.ac_des like 'FUMO' and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_des Like 'FUMO' and (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.ac_val is not null))
_Fumo_

FROM pazienti p LEFT OUTER JOIN nos_002 n ON p.codice =n.codice
WHERE p.sesso like 'M'                
AND(days(p.nascita, TODAY ( ))/365) >= 65
And p.pa_convenzione = 'S'
 And (n.pa_drevoca Is Null Or n.pa_drevoca > Today() )
And p.decesso is null
and n.pa_medi like '%'
order by 1,2


Attenzione, nell'estrazione devi lasciare cognome, nome e codice fiscale altrimenti vengono estratti molte righe in meno essendoci più casi di iniziali identiche ed anche casi di omonimia che verrebbero considerati come riga unica non essendo distinguibili tra loro. In un secondo momento è possibile cancellare queste colonne.
  perche' se levo la riga con sesso   WHERE p.sesso like 'M'
mi da risultato zero e se cambio la M con % estrae tutti M e F senza problemi?
Se levo la riga con l'eta' > di 65 anni invece non mi da errore.. confused

Mario
mario shirt
mario shirt
Membro Junior
Membro Junior

Messaggi : 254
Punti : 5150
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 68

Torna in alto Andare in basso

help query Empty Re: help query

Messaggio  Admin Mar 22 Apr 2014 - 10:41

mario shirt ha scritto:
Admin ha scritto:Prova questa:

SELECT DISTINCT p.cognome, p.nome,  CAST(Codice_fiscale as CHAR (21)), LEFT(p.cognome,1) C, LEFT(p.nome,1) N,
(select distinct 'si' from cart_pazpbl pr where
pr.codice=p.codice and (
pr.cp_code like '401%' or
pr.cp_code like '402%' or
pr.cp_code like '403%' or
pr.cp_code like '404%' or
pr.cp_code like '405%' or
pr.cp_code like '362.11'
) ) ipertensione,
(select distinct 'si' from cart_pazpbl pr where
pr.codice=p.codice and (
pr.cp_code like '250%'
) ) diabete,

(Select
CAST((case a.ac_val
WHEN 'O' THEN 'fumatore occasionale'
WHEN 'V' THEN 'fumatore passivo'
WHEN '1' THEN 'meno di 10 sigarette al giorno'
WHEN '2' THEN 'tra 10 e 20 sigarette al giorno'
WHEN '3' THEN 'oltre 20 sigarette al giorno'
WHEN 'X' THEN 'mai fumato e mai fumerà'
WHEN 'N' THEN 'mai fumato'
WHEN 'E' THEN 'ex fumatore da oltre 1 anno'
WHEN 'M' THEN 'ex fumatore'
WHEN 'F' THEN 'ex forte fumatore da oltre 10 anni'
WHEN 'Z' THEN 'ex forte fumatore da oltre 1 anno'
WHEN 'U' THEN 'ex forte fumatore'
WHEN 'P' THEN 'fumatore di pipa'
WHEN 'S' THEN 'fumatore di sigaro'
ELSE 'Non_Registrato' END) as char(35)) Tipo_fumatore
FROM cart_accert a
WHERE a.codice=p.codice AND a.ac_des like 'FUMO' and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_des Like 'FUMO' and (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.ac_val is not null))
_Fumo_

FROM pazienti p LEFT OUTER JOIN nos_002 n ON p.codice =n.codice
WHERE p.sesso like 'M'                
AND(days(p.nascita, TODAY ( ))/365) >= 65
And p.pa_convenzione = 'S'
 And (n.pa_drevoca Is Null Or n.pa_drevoca > Today() )
And p.decesso is null
and n.pa_medi like '%'
order by 1,2


Attenzione, nell'estrazione devi lasciare cognome, nome e codice fiscale altrimenti vengono estratti molte righe in meno essendoci più casi di iniziali identiche ed anche casi di omonimia che verrebbero considerati come riga unica non essendo distinguibili tra loro. In un secondo momento è possibile cancellare queste colonne.
  perche' se levo la riga con sesso   WHERE p.sesso like 'M'
mi da risultato zero e se cambio la M con % estrae tutti M e F senza problemi?
Se levo la riga con l'eta' > di 65 anni invece non mi da errore.. confused

Mario
WHERE non deve essere cancellato, ma deve essere WHERE (days(p.nascita, TODAY ( ))/365) >= 65     ecc.
Admin
Admin
Admin
Admin

Messaggi : 537
Punti : 5453
Voti per importanza dei messaggi : 89
Data d'iscrizione : 20.02.11
Località : CASERTA

https://utentimillewin.forumattivo.it

Torna in alto Andare in basso

help query Empty Re: help query

Messaggio  mario shirt Mar 22 Apr 2014 - 12:33

Admin ha scritto:
mario shirt ha scritto:
Admin ha scritto:Prova questa:

SELECT DISTINCT p.cognome, p.nome,  CAST(Codice_fiscale as CHAR (21)), LEFT(p.cognome,1) C, LEFT(p.nome,1) N,
(select distinct 'si' from cart_pazpbl pr where
pr.codice=p.codice and (
pr.cp_code like '401%' or
pr.cp_code like '402%' or
pr.cp_code like '403%' or
pr.cp_code like '404%' or
pr.cp_code like '405%' or
pr.cp_code like '362.11'
) ) ipertensione,
(select distinct 'si' from cart_pazpbl pr where
pr.codice=p.codice and (
pr.cp_code like '250%'
) ) diabete,

(Select
CAST((case a.ac_val
WHEN 'O' THEN 'fumatore occasionale'
WHEN 'V' THEN 'fumatore passivo'
WHEN '1' THEN 'meno di 10 sigarette al giorno'
WHEN '2' THEN 'tra 10 e 20 sigarette al giorno'
WHEN '3' THEN 'oltre 20 sigarette al giorno'
WHEN 'X' THEN 'mai fumato e mai fumerà'
WHEN 'N' THEN 'mai fumato'
WHEN 'E' THEN 'ex fumatore da oltre 1 anno'
WHEN 'M' THEN 'ex fumatore'
WHEN 'F' THEN 'ex forte fumatore da oltre 10 anni'
WHEN 'Z' THEN 'ex forte fumatore da oltre 1 anno'
WHEN 'U' THEN 'ex forte fumatore'
WHEN 'P' THEN 'fumatore di pipa'
WHEN 'S' THEN 'fumatore di sigaro'
ELSE 'Non_Registrato' END) as char(35)) Tipo_fumatore
FROM cart_accert a
WHERE a.codice=p.codice AND a.ac_des like 'FUMO' and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_des Like 'FUMO' and (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.ac_val is not null))
_Fumo_

FROM pazienti p LEFT OUTER JOIN nos_002 n ON p.codice =n.codice
WHERE p.sesso like 'M'                
AND(days(p.nascita, TODAY ( ))/365) >= 65
And p.pa_convenzione = 'S'
 And (n.pa_drevoca Is Null Or n.pa_drevoca > Today() )
And p.decesso is null
and n.pa_medi like '%'
order by 1,2


Attenzione, nell'estrazione devi lasciare cognome, nome e codice fiscale altrimenti vengono estratti molte righe in meno essendoci più casi di iniziali identiche ed anche casi di omonimia che verrebbero considerati come riga unica non essendo distinguibili tra loro. In un secondo momento è possibile cancellare queste colonne.
  perche' se levo la riga con sesso   WHERE p.sesso like 'M'
mi da risultato zero e se cambio la M con % estrae tutti M e F senza problemi?
Se levo la riga con l'eta' > di 65 anni invece non mi da errore.. confused

Mario
WHERE non deve essere cancellato, ma deve essere WHERE (days(p.nascita, TODAY ( ))/365) >= 65     ecc.
prova: se cancelli la riga con WHERE (days(p.nascita, TODAY ( ))/365) >= 65 
funziona
se cancelli  la riga con  WHERE p.sesso like 'M'
Risultato zero--- confused 

Meglio se le lascio tutte e 2 cosi' posso variare data e sesso senza problemi... Very Happy 

mario
mario shirt
mario shirt
Membro Junior
Membro Junior

Messaggi : 254
Punti : 5150
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 68

Torna in alto Andare in basso

help query Empty Re: help query

Messaggio  Contenuto sponsorizzato


Contenuto sponsorizzato


Torna in alto Andare in basso

Torna in alto


 
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.