help x estrazione cockroft
3 partecipanti
Pagina 1 di 2 • 1, 2
help x estrazione cockroft
Help agli esperti... tra pochi giorni dobbiamo presentare per avere soldini elenco (nome , cognome, sesso ,eta' nome del medico) pazienti ipertesi e diabetici > 60 anni con registrazione valore GFR attraverso la formula di Cockroft o MDRD nell'anno 2015. opportuno utilizzare la formula che mi permette di avere il nome e cognome da poter variare con le sole iniziali variando la lunghezza delle lettere visualizzate (Cast?)
Aspetto fiducioso per ringraziare chi ci aiuta..
Mario
Aspetto fiducioso per ringraziare chi ci aiuta..
Mario
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5389
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Re: help x estrazione cockroft
SELECT p.cognome, p.nome, (year(today())-year(p.datanasc)) eta, p.sesso
,
Come far venire iniziali nome e cognome'
risolto con
Cast( p.cognome As Char(1)
Mario
,
Come far venire iniziali nome e cognome'
risolto con
Cast( p.cognome As Char(1)
Mario
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5389
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Re: help x estrazione cockroft
mario shirt ha scritto:Help agli esperti... tra pochi giorni dobbiamo presentare per avere soldini elenco (nome , cognome, sesso ,eta' nome del medico) pazienti ipertesi e diabetici > 60 anni con registrazione valore GFR attraverso la formula di Cockroft o MDRD nell'anno 2015. opportuno utilizzare la formula che mi permette di avere il nome e cognome da poter variare con le sole iniziali variando la lunghezza delle lettere visualizzate (Cast?)
Aspetto fiducioso per ringraziare chi ci aiuta..
Mario
Trovata questa query:
SELECT p.cognome, p.nome, (year(today())-year(p.datanasc)) eta, p.sesso
, CASE WHEN (SELECT count(*) FROM cart_pazpbl pb WHERE pb.codice = p.codice AND pb.cp_code like '401%' ) > 0 THEN 1 ELSE 0 END as ipertensione
, CASE WHEN (SELECT count(*) FROM cart_pazpbl pb WHERE pb.codice = p.codice AND pb.cp_code like '250%' ) > 0 THEN 1 ELSE 0 END as diabete
, ( SELECT max(a.ac_val) FROM cart_accert a WHERE a.codice = p.codice AND (ac_code = '3952' OR ac_des = 'cock % (sg)') AND ac_val > ''
AND not exists (SELECT x.codice from cart_accert x WHERE x.codice = p.codice AND x.ac_code = a.ac_code and x.ac_val > '' AND x.data_open > a.data_open ) ) as Cockroft
,p.medico
FROM V_PAZIENTI p
where (SELECT count(*) FROM cart_pazpbl pb WHERE pb.codice = p.codice AND pb.cp_code like '401%' ) > 0 AND (year(today())-year(p.datanasc)) >60
order by p.cognome, p.nome
come fare a far venire anche i diabetici insieme agli ipertesi? mi da sempre errore.
Come impostare la ricerca solo per un anno?
come impostare solo iniziali trovato e messo nell'altro post
Mario
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5389
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Re: help x estrazione cockroft
Prova con ( presuntiva, cancello regolarmente in Accertamenti tutte le righe con la suddetta formula ( preferisco avere CKD-EPI eGRF ) :mario shirt ha scritto:Trovata questa query:mario shirt ha scritto:Help agli esperti... tra pochi giorni dobbiamo presentare per avere soldini elenco (nome , cognome, sesso ,eta' nome del medico) pazienti ipertesi e diabetici > 60 anni con registrazione valore GFR attraverso la formula di Cockroft o MDRD nell'anno 2015. ...
Aspetto fiducioso per ringraziare chi ci aiuta..
Mario
SELECT p.cognome, p.nome, (year(today())-year(p.datanasc)) eta, p.sesso ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl pb WHERE pb.codice = p.codice AND pb.cp_code like '401%' ) > 0 THEN 1 ELSE 0 END
as ipertensione ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl pb WHERE pb.codice = p.codice AND pb.cp_code like '250%' ) > 0 THEN 1 ELSE 0 END
as diabete ,
( SELECT max(a.ac_val) FROM cart_accert a WHERE a.codice = p.codice AND (ac_code = '3952' OR ac_des = 'cock % (sg)') AND ac_val > ''
AND not exists (SELECT x.codice from cart_accert x WHERE x.codice = p.codice AND x.ac_code = a.ac_code and x.ac_val > '' AND x.data_open > a.data_open ) )
as Cockroft ,
p.medico
FROM V_PAZIENTI p
where ( SELECT count(*) FROM cart_pazpbl pb WHERE pb.codice = p.codice AND pb.cp_code like '401%' ) > 0
AND (year(today())-year(p.datanasc)) >60
order by p.cognome, p.nome
come fare a far venire anche i diabetici insieme agli ipertesi? mi da sempre errore.
Come impostare la ricerca solo per un anno? come impostare solo iniziali trovato e messo nell'altro post
Mario
SELECT Left( p.cognome, 1) || Left( p.nome, 1) As paz , Cast( Days( p.nascita, Today()+1)*24/8766 As SmallInt ) As eta , p.sesso ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '401%' ) > 0 THEN 1 ELSE 0 END _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 THEN 1 ELSE 0 END _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > '' And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open
And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) = '2015' )
_Cockroft_ ,
p.medico
FROM v_pazienti p
WHERE Days( p.nascita, Today()+1)*24/8766 >60 AND
(( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 )
ORDER BY 2 , 3 , 4
Verifica e adatta alle Tue esigenze le condizioni di ricerca . Ti saluto , Sergio Tomasini , Orzivecchi ( BS )
Cervino- Membro Junior
- Messaggi : 245
Punti : 5281
Voti per importanza dei messaggi : 22
Data d'iscrizione : 03.03.11
Età : 70
Località : Orzivecchi (BS)
Re: help x estrazione cockroft
Cervino ha scritto:Prova con ( presuntiva, cancello regolarmente in Accertamenti tutte le righe con la suddetta formula ( preferisco avere CKD-EPI eGRF ) :mario shirt ha scritto:Trovata questa query:mario shirt ha scritto:Help agli esperti... tra pochi giorni dobbiamo presentare per avere soldini elenco (nome , cognome, sesso ,eta' nome del medico) pazienti ipertesi e diabetici > 60 anni con registrazione valore GFR attraverso la formula di Cockroft o MDRD nell'anno 2015. ...
Aspetto fiducioso per ringraziare chi ci aiuta..
Mario
SELECT p.cognome, p.nome, (year(today())-year(p.datanasc)) eta, p.sesso ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl pb WHERE pb.codice = p.codice AND pb.cp_code like '401%' ) > 0 THEN 1 ELSE 0 END
as ipertensione ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl pb WHERE pb.codice = p.codice AND pb.cp_code like '250%' ) > 0 THEN 1 ELSE 0 END
as diabete ,
( SELECT max(a.ac_val) FROM cart_accert a WHERE a.codice = p.codice AND (ac_code = '3952' OR ac_des = 'cock % (sg)') AND ac_val > ''
AND not exists (SELECT x.codice from cart_accert x WHERE x.codice = p.codice AND x.ac_code = a.ac_code and x.ac_val > '' AND x.data_open > a.data_open ) )
as Cockroft ,
p.medico
FROM V_PAZIENTI p
where ( SELECT count(*) FROM cart_pazpbl pb WHERE pb.codice = p.codice AND pb.cp_code like '401%' ) > 0
AND (year(today())-year(p.datanasc)) >60
order by p.cognome, p.nome
come fare a far venire anche i diabetici insieme agli ipertesi? mi da sempre errore.
Come impostare la ricerca solo per un anno? come impostare solo iniziali trovato e messo nell'altro post
Mario
SELECT Left( p.cognome, 1) || Left( p.nome, 1) As paz , Cast( Days( p.nascita, Today()+1)*24/8766 As SmallInt ) As eta , p.sesso ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '401%' ) > 0 THEN 1 ELSE 0 END _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 THEN 1 ELSE 0 END _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > '' And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open
And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) = '2015' )
_Cockroft_ ,
p.medico
FROM v_pazienti p
WHERE Days( p.nascita, Today()+1)*24/8766 >60 AND
(( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 )
ORDER BY 2 , 3 , 4
Verifica e adatta alle Tue esigenze le condizioni di ricerca . Ti saluto , Sergio Tomasini , Orzivecchi ( BS )
Grazie mille a chi non e' andato a mare e aiuta un collega anch'esso a casa e alle prese con gli obiettivi di salute.
Mi da errore SQL la colonna p.nascita non esiste.. Cme rimediare?
Mario
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5389
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Re: help x estrazione cockroft
mario shirt ha scritto:
Prova con ( presuntiva, cancello regolarmente in Accertamenti tutte le righe con la suddetta formula ( preferisco avere CKD-EPI eGRF ) :
SELECT Left( p.cognome, 1) || Left( p.nome, 1) As paz , Cast( Days( p.nascita, Today()+1)*24/8766 As SmallInt ) As eta , p.sesso ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '401%' ) > 0 THEN 1 ELSE 0 END _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 THEN 1 ELSE 0 END _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > '' And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open
And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) = '2015' )
_Cockroft_ ,
p.medico
FROM v_pazienti p
WHERE Days( p.nascita, Today()+1)*24/8766 >60 AND
(( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 )
ORDER BY 2 , 3 , 4
Verifica e adatta alle Tue esigenze le condizioni di ricerca . Ti saluto , Sergio Tomasini , Orzivecchi ( BS )
Grazie mille a chi non e' andato a mare e aiuta un collega anch'esso a casa e alle prese con gli obiettivi di salute.
Mi da errore SQL la colonna p.nascita non esiste.. Cme rimediare?
Mario
Ho variato (con copia e incolla tra le due query !!) in questo modo mettendo in maniera diversa il limite di eta'
SELECT Left( p.cognome, 15) || Left( p.nome, 1) As paz , p.sesso ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '401%' ) > 0 THEN 1 ELSE 0 END _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 THEN 1 ELSE 0 END _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > '' And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open
And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) = '2015' )
_Cockroft_ ,
p.medico
FROM v_pazienti p
WHERE (year(today())-year(p.datanasc)) >60 AND
(( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 )
ORDER BY 2 , 3 , 4
come far venire la colonna eta'? (scusa ma non mi viene..) Altra piccola domanda come aggiungo uno spazio tra cognome e nome?
Mario
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5389
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Re: help x estrazione cockroft
mario shirt ha scritto:SELECT p.cognome, p.nome, (year(today())-year(p.datanasc)) eta, p.sesso
,
Come far venire iniziali nome e cognome'
risolto con
Cast( p.cognome As Char(1)
Mario
Scusa Mario una domanda, ma se non invii nome e cognome del paziente ed il valore del VFG a che serve averli stadiati per l'insufficienza renale?
Ultima modifica di Lucio Mignone il Lun 13 Giu 2016 - 10:41 - modificato 1 volta.
Re: help x estrazione cockroft
Lucio Mignone ha scritto:mario shirt ha scritto:SELECT p.cognome, p.nome, (year(today())-year(p.datanasc)) eta, p.sesso
,
Come far venire iniziali nome e cognome'
risolto con
Cast( p.cognome As Char(1)
Mario
Scusa Mario una domanda, ma se non invii nome e cognome del paziente a che serve averli stadiati per l'insufficienza renale?
Per problemi di privacy si e' deciso cosi, basta dimostrare che abbiamo i dati "noi" e non la ASL. Se abbisognano di controllare verranno in ambulatorio o sae vogliono i dati si contratteranno dal punto di vista sindacale. Avere il nome serve a me x controllare le persone alla asl basterebbe eta' e sesso e iniziali
Mario
Mario
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5389
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Re: help x estrazione cockroft
mario shirt ha scritto:Lucio Mignone ha scritto:mario shirt ha scritto:SELECT p.cognome, p.nome, (year(today())-year(p.datanasc)) eta, p.sesso
,
Come far venire iniziali nome e cognome'
risolto con
Cast( p.cognome As Char(1)
Mario
Scusa Mario una domanda, ma se non invii nome e cognome del paziente a che serve averli stadiati per l'insufficienza renale?
Per problemi di privacy si e' deciso cosi, basta dimostrare che abbiamo i dati "noi" e non la ASL. Se abbisognano di controllare verranno in ambulatorio o sae vogliono i dati si contratteranno dal punto di vista sindacale. Avere il nome serve a me x controllare le persone alla asl basterebbe eta' e sesso e iniziali
Mario
Mario
L'età del pz la vuoi al momento dell'estrazione oppure al momendo della rilevazione?
Re: help x estrazione cockroft
mario shirt ha scritto:
Come far venire iniziali nome e cognome'
Mario
Prova se ti va bene questa.
Occchio che questa (come la tua che hai postato) Calcola l'età del paziente al momento dell'estrazione ed anche la clausola età sopra 60 anni si basa sull'età del pz al momento dell'estrazione...
SELECT Left( p.cognome, 1) || ' ' || Left( p.nome, 1) As paz , p.sesso , EXTRACT(YEAR FROM age(now(), P.datanasc)) as Eta_Oggi,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '401%' ) > 0 THEN 1 ELSE 0 END _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 THEN 1 ELSE 0 END _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > '' And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open
And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) = '2015' )
_Cockroft_ ,
p.medico
FROM v_pazienti p
WHERE EXTRACT(YEAR FROM age(now(), P.datanasc)) >60 AND
(( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 )
ORDER BY 2 , 3 , 4
Ultima modifica di Lucio Mignone il Lun 13 Giu 2016 - 11:31 - modificato 2 volte.
Re: help x estrazione cockroft
Lucio Mignone ha scritto:mario shirt ha scritto:
Come far venire iniziali nome e cognome'
Mario
Prova se ti va bene questa.
SELECT Left( p.cognome, 1) || ' ' || Left( p.nome, 1) As paz , p.sesso , EXTRACT(YEAR FROM age(now(), P.datanasc)) as Eta_Oggi,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '401%' ) > 0 THEN 1 ELSE 0 END _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 THEN 1 ELSE 0 END _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > '' And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open
And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) = '2015' )
_Cockroft_ ,
p.medico
FROM v_pazienti p
WHERE EXTRACT(YEAR FROM age(now(), P.datanasc)) >60 AND
(( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 )
ORDER BY 2 , 3 , 4
Ok grazie mille, ora intravedo come arrangiarmi nelle piccole variazioni, avevo fatto con copia e incolla la seguente che funziona
SELECT Cast( p.cognome As Char(15)), Cast( p.nome As Char(15)), (year(today())-year(p.datanasc)) eta, p.sesso,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '401%' ) > 0 THEN 1 ELSE 0 END _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 THEN 1 ELSE 0 END _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > '' And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open
And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) = '2015' )
_Cockroft_ ,
p.medico
FROM v_pazienti p
WHERE (year(today())-year(p.datanasc)) >60 AND
(( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 )
ORDER BY 2 , 3 , 4
per concludere ti chiedo, visto che sei in linea, come inserire e dove anche la ricerca del GRF secondo MDRD cod. 5401. Ho provato ad aggiungere un OR dopo
a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%'
ma mi da errore..
ultima cosa variare l'anno ok lo so ma mettere 2 o piu' anni o levarlo completamente cosa vario?
Mario
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5389
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Re: help x estrazione cockroft
mario shirt ha scritto:
ultima cosa variare l'anno ok lo so ma mettere 2 o piu' anni o levarlo completamente cosa vario?
Mario
Non ho capito cosa vuoi dire e fare...
Ti risottolineo una cosa
Occhio che la query (come la tua che hai postato) Calcola l'età del paziente al momento dell'estrazione ed anche la clausola età sopra 60 anni si basa sull'età del pz al momento dell'estrazione e non al momento della rilevazione del dato...
Re: help x estrazione cockroft
mario shirt ha scritto:
per concludere ti chiedo, visto che sei in linea, come inserire e dove anche la ricerca del GRF secondo MDRD cod. 5401. Ho provato ad aggiungere un OR dopo
a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%'
ma mi da errore..
ultima cosa variare l'anno ok lo so ma mettere 2 o piu' anni o levarlo completamente cosa vario?
Mario
Modificare una query di questo tipo scritta da altri comporta sempre la possibilità di generare nuovi e poco comprensibili errori
Comunque,
Per l'MDRD oppure altri accertamenti devi reinserire tutta la subquery modificando ad hoc i parametri, prova questa qui di seguito.
Per quanto riguarda l'anno ti riferirivi all'arco temporale della ricerca (2015 per intenderci)?
SELECT Left( p.cognome, 1) || ' ' || Left( p.nome, 1) As paz , p.sesso , EXTRACT(YEAR FROM age(now(), P.datanasc)) as Eta_Oggi,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '401%' ) > 0 THEN 1 ELSE 0 END _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 THEN 1 ELSE 0 END _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > '' And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open
And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) = '2015' )
_Cockroft_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '5401' OR a.ac_des ILIKE '%mdrd%' ) AND a.ac_val > '' And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '5401' OR a1.ac_des ILIKE '%mdrd%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open
And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) = '2015' )
_MDRD_ ,
p.medico
FROM v_pazienti p
WHERE EXTRACT(YEAR FROM age(now(), P.datanasc)) >60 AND
(( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 )
ORDER BY 2 , 3 , 4
Re: help x estrazione cockroft
Lucio Mignone ha scritto:mario shirt ha scritto:
per concludere ti chiedo, visto che sei in linea, come inserire e dove anche la ricerca del GRF secondo MDRD cod. 5401. Ho provato ad aggiungere un OR dopo
a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%'
ma mi da errore..
ultima cosa variare l'anno ok lo so ma mettere 2 o piu' anni o levarlo completamente cosa vario?
Mario
Modificare una query di questo tipo scritta da altri comporta sempre la possibilità di generare nuovi e poco comprensibili errori
Comunque,
Per l'MDRD oppure altri accertamenti devi reinserire tutta la subquery modificando ad hoc i parametri, prova questa qui di seguito.
Per quanto riguarda l'anno ti riferirivi all'arco temporale della ricerca (2015 per intenderci)?
SELECT Left( p.cognome, 1) || ' ' || Left( p.nome, 1) As paz , p.sesso , EXTRACT(YEAR FROM age(now(), P.datanasc)) as Eta_Oggi,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '401%' ) > 0 THEN 1 ELSE 0 END _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 THEN 1 ELSE 0 END _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > '' And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open
And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) = '2015' )
_Cockroft_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '5401' OR a.ac_des ILIKE '%mdrd%' ) AND a.ac_val > '' And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '5401' OR a1.ac_des ILIKE '%mdrd%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open
And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) = '2015' )
_MDRD_ ,
p.medico
FROM v_pazienti p
WHERE EXTRACT(YEAR FROM age(now(), P.datanasc)) >60 AND
(( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 )
ORDER BY 2 , 3 , 4
perfetta.. grazie ho capito dove sbagliavo...
Qual'e' il comando x l'eta' non attuale?
per l'anno mi riferivo all'arco temporale di ricerca : nullo o piu' anni.
Buona settimana e rigrazie
Mario
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5389
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Re: help x estrazione cockroft
Purtroppo nel mio MillePS non esiste la vista v_pazienti ( di conseguenza eseguo le prove utilizzando la classica tabella pazienti ; ringrazio Lucio x la tempestiva correzione )mario shirt ha scritto:
ultima cosa variare l'anno ok lo so ma mettere 2 o piu' anni o levarlo completamente cosa vario?
perfetta.. grazie ho capito dove sbagliavo...
Qual'e' il comando x l'eta' non attuale?
per l'anno mi riferivo all'arco temporale di ricerca : nullo o piu' anni.
Buona settimana e rigrazie
Mario
Mario
Di solito è uso comune x la Tutela della Privacy, generare un codice paziente di lunghezza adeguata ( almeno 8 caratteri ma anche 16 o 20 ) : random oppure con un semplice algoritmo ( combinando fra loro vari campi come ad es. CF, codice SSR, indirizzo, telefono ecc. ) per evitare quantomeno facili manipolazioni .
Per variare un periodo temporale di ricerca, varie sono le opzioni : And Year( a.data_open) IN ( '2014' , '2015' ))
And a.data_open Between Today()-730 And Today()
And a.data_open Between '2014-01-01' And '2015-12-31'
per levare la limitazione temporale : cancellare la relativa condizione o neutralizzarla includendola fra /* */ ad es.
/* And Year( a.data_open) IN ( '2015' , '2014' )) */
Giusta anche l' osservazione di Lucio riguardo all' età di considerare l' età del Paziente al 31/12/ dell' anno di riferimento, come nel caso della Vaccinazione AntiInfluenzale, utilizzando ad es. :
Year( '2015-12-31')-Year(p.datanasc) oppure Year( '2015-01-01')-Year(p.datanasc)
Extract( Year From Age( '2015-12-31', p.datanasc))
( è possibile utilizzare qualsiasi altri giorno dell' anno di interesse )
Vi saluto , Sergio
Cervino- Membro Junior
- Messaggi : 245
Punti : 5281
Voti per importanza dei messaggi : 22
Data d'iscrizione : 03.03.11
Età : 70
Località : Orzivecchi (BS)
Re: help x estrazione cockroft
Grazie delle ottime spiegazioni, Buona Notte SergioCervino ha scritto:
Per variare un periodo temporale di ricerca, varie sono le opzioni : And Year( a.data_open) IN ( '2014' , '2015' ))
And a.data_open Between Today()-730 And Today()
And a.data_open Between '2014-01-01' And '2015-12-31'
per levare la limitazione temporale : cancellare la relativa condizione o neutralizzarla includendola fra /* */ ad es.
/* And Year( a.data_open) IN ( '2015' , '2014' )) */
Giusta anche l' osservazione di Lucio riguardo all' età di considerare l' età del Paziente al 31/12/ dell' anno di riferimento, come nel caso della Vaccinazione AntiInfluenzale, utilizzando ad es. :
Year( '2015-12-31')-Year(p.datanasc) oppure Year( '2015-01-01')-Year(p.datanasc)
Extract( Year From Age( '2015-12-31', p.datanasc))
( è possibile utilizzare qualsiasi altri giorno dell' anno di interesse )
Vi saluto , Sergio
Mario
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5389
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Re: help x estrazione cockroft
Cervino ha scritto:
Purtroppo nel mio MillePS non esiste la vista v_pazienti ( di conseguenza eseguo le prove utilizzando la classica tabella pazienti ; ringrazio Lucio x la tempestiva correzione )
....
Vi saluto , Sergio
Maestro Sergio non mi ero accorto che aveva scritto Lei la query altrimenti non mi sarei mai permesso di apportare una qualsivoglia modifica..
Grazie per le altre utili e preziose indicazioni.
PS in effetti se si lavora con programmi esterni a Milleutilità si perde la possibilita di usare le viste tipo v_pazienti etc. etc.
Re: help x estrazione cockroft
Nessuna offesa Lucio, anzi grazie x il Tuo contributo e per le Tue osservazioni ma forse certi attributi di stato sono eccessivi .. visto che l' errore è sempre in agguato e che le query sono sempre perfettibili .Lucio Mignone ha scritto:Maestro Sergio non mi ero accorto che aveva scritto Lei la query altrimenti non mi sarei mai permesso di apportare una qualsivoglia modifica..
Grazie per le altre utili e preziose indicazioni.
PS in effetti se si lavora con programmi esterni a Milleutilità si perde la possibilita di usare le viste tipo v_pazienti etc. etc.
Comunque x le Viste di Default presenti in MW / MU, nessun rimpianto ; con PgAdminIII posso creare , modificare , cancellare svariati tipi di Vista ( in modo analogo ai Registri dei Pazienti con vari tipi di Patologia presenti in MW ) che semplificano e facilitano la scrittura delle clausole e delle condizioni di ricerca nelle query ( di solito l' istruzione viene eseguita anche piu' velocemente ) ; ma non Mi sovviene certo l' idea di cambiare i nomi del campi delle Tabelle nelle Viste ( che cosi tanti problemi causa anche nel Forum ), anzi di solito attribuisco al campo un nome alternativo di comodo .
Vi saluto , Sergio
Cervino- Membro Junior
- Messaggi : 245
Punti : 5281
Voti per importanza dei messaggi : 22
Data d'iscrizione : 03.03.11
Età : 70
Località : Orzivecchi (BS)
Re: help x estrazione cockroft
Scusa Sergio mi puoi spiegare come mai se inserisco /* */ per levare data mi da errore di sintassi , idem se aggiungo 2014 come da te scritto?mario shirt ha scritto:Cervino ha scritto:
Per variare un periodo temporale di ricerca, varie sono le opzioni : And Year( a.data_open) IN ( '2014' , '2015' ))
And a.data_open Between Today()-730 And Today()
And a.data_open Between '2014-01-01' And '2015-12-31'
per levare la limitazione temporale : cancellare la relativa condizione o neutralizzarla includendola fra /* */ ad es.
/* And Year( a.data_open) IN ( '2015' , '2014' )) */
Giusta anche l' osservazione di Lucio riguardo all' età di considerare l' età del Paziente al 31/12/ dell' anno di riferimento, come nel caso della Vaccinazione AntiInfluenzale, utilizzando ad es. :
Year( '2015-12-31')-Year(p.datanasc) oppure Year( '2015-01-01')-Year(p.datanasc)
Extract( Year From Age( '2015-12-31', p.datanasc))
( è possibile utilizzare qualsiasi altri giorno dell' anno di interesse )
Altra cosa: in molti paziennti che hanno in cartella il valore del Cockroft o del GR non risultano i valori nell'estrazione ( verificata l'esistenza del valore anche daparte degli altri 4 colleghi del mio gruppo)
Saluti
Mario
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5389
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Re: help x estrazione cockroft
mario shirt ha scritto:Scusa Sergio mi puoi spiegare come mai se inserisco /* */ per levare data mi da errore di sintassi , idem se aggiungo 2014 come da te scritto?mario shirt ha scritto:Cervino ha scritto:
Per variare un periodo temporale di ricerca, varie sono le opzioni : And Year( a.data_open) IN ( '2014' , '2015' ))
And a.data_open Between Today()-730 And Today()
And a.data_open Between '2014-01-01' And '2015-12-31'
per levare la limitazione temporale : cancellare la relativa condizione o neutralizzarla includendola fra /* */ ad es.
/* And Year( a.data_open) IN ( '2015' , '2014' )) */
Giusta anche l' osservazione di Lucio riguardo all' età di considerare l' età del Paziente al 31/12/ dell' anno di riferimento, come nel caso della Vaccinazione AntiInfluenzale, utilizzando ad es. :
Year( '2015-12-31')-Year(p.datanasc) oppure Year( '2015-01-01')-Year(p.datanasc)
Extract( Year From Age( '2015-12-31', p.datanasc))
( è possibile utilizzare qualsiasi altri giorno dell' anno di interesse )
Altra cosa: in molti paziennti che hanno in cartella il valore del Cockroft o del GR non risultano i valori nell'estrazione ( verificata l'esistenza del valore anche daparte degli altri 4 colleghi del mio gruppo)
Saluti
Mario
Posta la query con la modifica che ti da errore
se il problema è questa riga
/* And Year( a.data_open) IN ( '2015' , '2014' )) */
togli l'ultima parentesi che mi pare di troppo...
facendola diventare questa:
/* And Year( a.data_open) IN ( '2015' , '2014' ) */
Re: help x estrazione cockroft
Lucio Mignone ha scritto:mario shirt ha scritto:
Scusa Sergio mi puoi spiegare come mai se inserisco /* */ per levare data mi da errore di sintassi , idem se aggiungo 2014 come da te scritto?
Altra cosa: in molti paziennti che hanno in cartella il valore del Cockroft o del GR non risultano i valori nell'estrazione ( verificata l'esistenza del valore anche daparte degli altri 4 colleghi del mio gruppo)
Saluti
Mario
Posta la query con la modifica che ti da errore
se il problema è questa riga
/* And Year( a.data_open) IN ( '2015' , '2014' )) */
togli l'ultima parentesi che mi pare di troppo...
facendola diventare questa:
/* And Year( a.data_open) IN ( '2015' , '2014' ) */
SELECT Left( p.cognome, 1) || ' ' || Left( p.nome, 1) As paz , p.sesso , EXTRACT(YEAR FROM age(public.now(), P.datanasc)) as Eta_Oggi,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '401%' ) > 0 THEN 1 ELSE 0 END _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 THEN 1 ELSE 0 END _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > '' And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open
And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) = '2015' )
_Cockroft_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '5401' OR a.ac_des ILIKE '%mdrd%' ) AND a.ac_val > '' And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '5401' OR a1.ac_des ILIKE '%mdrd%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open
And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) IN ( '2015' , '2014' )
_MDRD_ ,
p.medico
FROM v_pazienti p
WHERE EXTRACT(YEAR FROM age(public.now(), P.datanasc)) >60 AND
(( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 )
ORDER BY 2 , 3 , 4
questa query mi da errore anche se metto
/* And Year( a.data_open) IN ( '2015' , '2014' ) */
Mario
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5389
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Re: help x estrazione cockroft
Lucio Mignone ha scritto:mario shirt ha scritto:Scusa Sergio mi puoi spiegare come mai se inserisco /* */ per levare data mi da errore di sintassi , idem se aggiungo 2014 come da te scritto?mario shirt ha scritto:Cervino ha scritto:
Per variare un periodo temporale di ricerca, varie sono le opzioni : And Year( a.data_open) IN ( '2014' , '2015' ))
And a.data_open Between Today()-730 And Today()
And a.data_open Between '2014-01-01' And '2015-12-31'
per levare la limitazione temporale : cancellare la relativa condizione o neutralizzarla includendola fra /* */ ad es.
/* And Year( a.data_open) IN ( '2015' , '2014' )) */
Giusta anche l' osservazione di Lucio riguardo all' età di considerare l' età del Paziente al 31/12/ dell' anno di riferimento, come nel caso della Vaccinazione AntiInfluenzale, utilizzando ad es. :
Year( '2015-12-31')-Year(p.datanasc) oppure Year( '2015-01-01')-Year(p.datanasc)
Extract( Year From Age( '2015-12-31', p.datanasc))
( è possibile utilizzare qualsiasi altri giorno dell' anno di interesse )
Altra cosa: in molti paziennti che hanno in cartella il valore del Cockroft o del GR non risultano i valori nell'estrazione ( verificata l'esistenza del valore anche daparte degli altri 4 colleghi del mio gruppo)
Saluti
Mario
Posta la query con la modifica che ti da errore
se il problema è questa riga
/* And Year( a.data_open) IN ( '2015' , '2014' )) */
togli l'ultima parentesi che mi pare di troppo...
facendola diventare questa:
/* And Year( a.data_open) IN ( '2015' , '2014' ) */
mi correggo, la seconda parentesi ci vuole quando l'istruzione è inserita nella select...
Re: help x estrazione cockroft
mario shirt ha scritto:Lucio Mignone ha scritto:mario shirt ha scritto:
Scusa Sergio mi puoi spiegare come mai se inserisco /* */ per levare data mi da errore di sintassi , idem se aggiungo 2014 come da te scritto?
Altra cosa: in molti paziennti che hanno in cartella il valore del Cockroft o del GR non risultano i valori nell'estrazione ( verificata l'esistenza del valore anche daparte degli altri 4 colleghi del mio gruppo)
Saluti
Mario
Posta la query con la modifica che ti da errore
se il problema è questa riga
/* And Year( a.data_open) IN ( '2015' , '2014' )) */
togli l'ultima parentesi che mi pare di troppo...
facendola diventare questa:
/* And Year( a.data_open) IN ( '2015' , '2014' ) */
SELECT Left( p.cognome, 1) || ' ' || Left( p.nome, 1) As paz , p.sesso , EXTRACT(YEAR FROM age(public.now(), P.datanasc)) as Eta_Oggi,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '401%' ) > 0 THEN 1 ELSE 0 END _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 THEN 1 ELSE 0 END _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > '' And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open
And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) = '2015' )
_Cockroft_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '5401' OR a.ac_des ILIKE '%mdrd%' ) AND a.ac_val > '' And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '5401' OR a1.ac_des ILIKE '%mdrd%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open
And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) IN ( '2015' , '2014' )
_MDRD_ ,
p.medico
FROM v_pazienti p
WHERE EXTRACT(YEAR FROM age(public.now(), P.datanasc)) >60 AND
(( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 )
ORDER BY 2 , 3 , 4
questa query mi da errore anche se metto
/* And Year( a.data_open) IN ( '2015' , '2014' ) */
Mario
Quindi a me questa funziona...
SELECT Left( p.cognome, 1) || ' ' || Left( p.nome, 1) As paz , p.sesso , EXTRACT(YEAR FROM age(now(), P.datanasc)) as Eta_Oggi,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '401%' ) > 0 THEN 1 ELSE 0 END _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 THEN 1 ELSE 0 END _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > '' And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open
And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) = '2015' )
_Cockroft_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '5401' OR a.ac_des ILIKE '%mdrd%' ) AND a.ac_val > '' And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '5401' OR a1.ac_des ILIKE '%mdrd%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open
And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) IN ( '2015' , '2014' ))
_MDRD_ ,
p.medico
FROM v_pazienti p
WHERE EXTRACT(YEAR FROM age(now(), P.datanasc)) >60 AND
(( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code like '250%' ) > 0 )
ORDER BY 2 , 3 , 4
Re: help x estrazione cockroft
mario shirt ha scritto:mario shirt ha scritto:Scusa Sergio mi puoi spiegare come mai se inserisco /* */ per levare data mi da errore di sintassi , idem se aggiungo 2014 come da te scritto?
Altra cosa: in molti pazienti che hanno in cartella il valore del Cockroft o del GR non risultano i valori nell'estrazione ( verificata l'esistenza del valore anche da parte degli altri 4 colleghi del mio gruppo) Saluti Mario
Evidentemente va verificata almeno una clausola di inclusione nelle condizioni di ricerca,
utilizzando una query piu' semplice , ad es. :
Select * From cart_accert a Where a.ac_des Ilike '%Creat%' And Year( a.data_open) = '2015'
e modifica di conseguenza le clausole di interesse, in base ai dati restituiti
oppure prova con ( ho aggiunto la colonna data x verifica ) :
SELECT Left( p.cognome, 1) || ' ' || Left( p.nome, 1) As paz , p.sesso ,
Year( '2015-12-31') - Year( p.datanasc) As eta ,
CASE WHEN (Select Count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code ILIKE '401%' ) > 0 THEN 1 ELSE 0 END _AHT_ ,
CASE WHEN (Select Count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code ILIKE '250%' ) > 0 THEN 1 ELSE 0 END _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' )
AND Ascii( a.ac_val) BETWEEN 48 AND 57 And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice And ( a1.ac_code = '3952' OR a1.ac_des
ILIKE '%Creat%Cock%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open And a1.rowid>a.rowid)) And a1.ac_val Is Not Null )
And Year( a.data_open) IN ( '2015' , '2014' ) )
_Cockroft_ ,
( SELECT a.data_open FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND Ascii( a.ac_val) BETWEEN 48 AND 57
And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) IN ( '2015' , '2014' ) )
_Cockroft_d_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '5401' OR a.ac_des ILIKE '%MDRD%' )
AND Ascii( a.ac_val) BETWEEN 48 AND 57 And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice And ( a1.ac_code = '5401' OR a1.ac_des ILIKE '%mdrd%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) IN ( '2015' , '2014' ) ) _MDRD_ , p.medico
FROM v_pazienti p
WHERE Year( '2015-12-31') - Year( p.datanasc) >60 AND
(( Select Count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code ILIKE '401%' ) > 0
OR (Select Count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code ILIKE '250%' ) > 0 )
ORDER BY 3 , 4 , 5
Per disattivare una clausola usa /* */ ponendo attenzione alle parentesi, ad es. :
/* And Year( a.data_open) IN ( '2015' , '2014' ) */ )
come suggerito da Lucio
Ti saluto , Sergio
Cervino- Membro Junior
- Messaggi : 245
Punti : 5281
Voti per importanza dei messaggi : 22
Data d'iscrizione : 03.03.11
Età : 70
Località : Orzivecchi (BS)
Re: help x estrazione cockroft
Grazie mille Sergio, sembra che funzioni alla perfezione, non mi sembra che ci siano assenze di risultati nell'estrazione.Cervino ha scritto:mario shirt ha scritto:mario shirt ha scritto:Scusa Sergio mi puoi spiegare come mai se inserisco /* */ per levare data mi da errore di sintassi , idem se aggiungo 2014 come da te scritto?
Altra cosa: in molti pazienti che hanno in cartella il valore del Cockroft o del GR non risultano i valori nell'estrazione ( verificata l'esistenza del valore anche da parte degli altri 4 colleghi del mio gruppo) Saluti Mario
Evidentemente va verificata almeno una clausola di inclusione nelle condizioni di ricerca,
utilizzando una query piu' semplice , ad es. :
Select * From cart_accert a Where a.ac_des Ilike '%Creat%' And Year( a.data_open) = '2015'
e modifica di conseguenza le clausole di interesse, in base ai dati restituiti
oppure prova con ( ho aggiunto la colonna data x verifica ) :
SELECT Left( p.cognome, 1) || ' ' || Left( p.nome, 1) As paz , p.sesso ,
Year( '2015-12-31') - Year( p.datanasc) As eta ,
CASE WHEN (Select Count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code ILIKE '401%' ) > 0 THEN 1 ELSE 0 END _AHT_ ,
CASE WHEN (Select Count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code ILIKE '250%' ) > 0 THEN 1 ELSE 0 END _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' )
AND Ascii( a.ac_val) BETWEEN 48 AND 57 And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice And ( a1.ac_code = '3952' OR a1.ac_des
ILIKE '%Creat%Cock%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open And a1.rowid>a.rowid)) And a1.ac_val Is Not Null )
And Year( a.data_open) IN ( '2015' , '2014' ) )
_Cockroft_ ,
( SELECT a.data_open FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND Ascii( a.ac_val) BETWEEN 48 AND 57
And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) IN ( '2015' , '2014' ) )
_Cockroft_d_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '5401' OR a.ac_des ILIKE '%MDRD%' )
AND Ascii( a.ac_val) BETWEEN 48 AND 57 And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice And ( a1.ac_code = '5401' OR a1.ac_des ILIKE '%mdrd%' ) And (a1.data_open > a.data_open Or ( a1.data_open = a.data_open And a1.rowid>a.rowid)) And a1.ac_val Is Not Null ) And Year( a.data_open) IN ( '2015' , '2014' ) ) _MDRD_ , p.medico
FROM v_pazienti p
WHERE Year( '2015-12-31') - Year( p.datanasc) >60 AND
(( Select Count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code ILIKE '401%' ) > 0
OR (Select Count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code ILIKE '250%' ) > 0 )
ORDER BY 3 , 4 , 5
Per disattivare una clausola usa /* */ ponendo attenzione alle parentesi, ad es. :
/* And Year( a.data_open) IN ( '2015' , '2014' ) */ )
come suggerito da Lucio
Ti saluto , Sergio
Visto che ci siamo mi spieghi cosa vuol dire questa espressione SELECT Round( To_Number( a.ac_val , '99999D999' ) e soprattutto il valore 99999D999? e
AND Ascii( a.ac_val) BETWEEN 48 AND 57
Mario
P.S. io principiante (e copia incollista !!) sarei per capire le cose semplici
, avresti ridotto di molto la query utilizzando Select * From cart_accert a Where a.ac_des Ilike '%Creat%' And Year( a.data_open) = '2015'
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5389
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Pagina 1 di 2 • 1, 2
Argomenti simili
» estrazione suggeriti
» ESTRAZIONE FATTURE
» ESTRAZIONE FATTURE
» estrazione di pz stranieri
» estrazione un pò...particolare
» ESTRAZIONE FATTURE
» ESTRAZIONE FATTURE
» estrazione di pz stranieri
» estrazione un pò...particolare
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.