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
****************************************************

help query

Andare in basso

help query

Messaggio  mario shirt il 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
avatar
mario shirt
Membro Junior
Membro Junior

Messaggi : 246
Punti : 3031
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 62

Visualizza il profilo dell'utente

Torna in alto Andare in basso

Re: help query

Messaggio  GiampiMaz il 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
avatar
GiampiMaz
Membro Junior
Membro Junior

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

Visualizza il profilo dell'utente

Torna in alto Andare in basso

Re: help query

Messaggio  mario shirt il 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
avatar
mario shirt
Membro Junior
Membro Junior

Messaggi : 246
Punti : 3031
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 62

Visualizza il profilo dell'utente

Torna in alto Andare in basso

Re: help query

Messaggio  mario shirt il 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
avatar
mario shirt
Membro Junior
Membro Junior

Messaggi : 246
Punti : 3031
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 62

Visualizza il profilo dell'utente

Torna in alto Andare in basso

Re: help query

Messaggio  Admin il 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.

_________________
L'Amministratore
Giuseppe Blasio
avatar
Admin
Admin
Admin

Messaggi : 521
Punti : 3326
Voti per importanza dei messaggi : 85
Data d'iscrizione : 20.02.11
Località : CASERTA

Visualizza il profilo dell'utente http://utentimillewin.forumattivo.it

Torna in alto Andare in basso

Re: help query

Messaggio  mario shirt il 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
avatar
mario shirt
Membro Junior
Membro Junior

Messaggi : 246
Punti : 3031
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 62

Visualizza il profilo dell'utente

Torna in alto Andare in basso

Re: help query

Messaggio  Admin il 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.

_________________
L'Amministratore
Giuseppe Blasio
avatar
Admin
Admin
Admin

Messaggi : 521
Punti : 3326
Voti per importanza dei messaggi : 85
Data d'iscrizione : 20.02.11
Località : CASERTA

Visualizza il profilo dell'utente http://utentimillewin.forumattivo.it

Torna in alto Andare in basso

Re: help query

Messaggio  mario shirt il 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
avatar
mario shirt
Membro Junior
Membro Junior

Messaggi : 246
Punti : 3031
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 62

Visualizza il profilo dell'utente

Torna in alto Andare in basso

Re: help query

Messaggio  Contenuto sponsorizzato


Contenuto sponsorizzato


Torna in alto Andare in basso

Torna in alto

- Argomenti simili

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