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

doppia aggregazione e frequenza

Pagina 1 di 2 1, 2  Seguente

Andare in basso

doppia aggregazione e frequenza

Messaggio  nanci giacinto il Lun 27 Gen 2014 - 15:29

Salve dovrei estrarre da un server di otto medici collegati in rete (associazione MEDIASS) gli assistiti con cardiopatia ischemica (codici da 410 a 414) e angioplastica (v45.82), il loro betabloccante e la loro doppia aggregazione (fondamentalmente cardioaspirina e clopidrogel) e infine anche la frequenza cardiaca. So estrarre i dati da una sola vista per come implementata su millewin. Non funziona bene l'impiego di WHERE per collegare due o più' tabelle   in una tabella finale per come illustrato nella guida millewin al linguaggio SQL. Non so usare le query con le tabelle e sono quindi bloccato. Grazie in anticipo alle anime buone.
Infine perché questa query:
SELECT cognome, nome, atc
FROM v_terapie
WHERE ATC like 'B01AC04' and atc like 'b01ac06'
mi da risultato zero quando nel mio archivio ci sono gli assistiti con doppia aggregazione? grazie ancora. Ma non esiste una guida all'uso delle tabelle?.
nanci giacinto
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 126
Punti : 3134
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Visualizza il profilo

Torna in alto Andare in basso

Re: doppia aggregazione e frequenza

Messaggio  GiampiMaz il Lun 27 Gen 2014 - 16:33

Ciao, ti rispondo al quesito sulla query perchè è rapido, se non avrai risposta nei prossimi giorni ti posto la query

FROM v_terapie
WHERE ATC like 'B01AC04' and atc like 'b01ac06'


ti dà 0 perchè i codice ATC che viene testato non può essere contemporaneamente uguale a 'B01AC04' e a'b01ac06', 
con WHERE ATC like 'B01AC04' OR atc like 'b01ac06' estrai i pazienti che hanno solo il codice 1, solo il codice 2 o entrambi.
Per estrarre i pazienti che hanno entrambi i codici devi fare


FROM v_terapie a, v_terapie b
WHERE a.ATC like 'B01AC04' and b.atc like 'b01ac06'



così estrae la presenza contemporanea dei due codici  cheers 


gimpiero
GiampiMaz
GiampiMaz
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

doppia aggregazione

Messaggio  nanci giacinto il Lun 27 Gen 2014 - 23:22

Grazie per il consiglio ma questa query mi da sempre zero
SELECT cognome, nome, atc
 FROM v_terapie a, v_terapie b
WHERE a.atc like 'b01ac04' and b.atc like 'b01ac06'
Mi da altrettanto zero quest'altra query
SELECT DISTINCT v_terapie.cognome, v_terapie.nome, V_terapie.atc, v_terapie.terapia, v_pressione.frequenza
FROM v_terapie, v_pressione
WHERE v_terapie.codice = v_pressione.codice and v_terapie.atc like 'B01AC04' and v_terapie.atc like 'B01AC06'

Io preferirei una query con le tabelle e non con le viste. grazie
nanci giacinto
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 126
Punti : 3134
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Visualizza il profilo

Torna in alto Andare in basso

Re: doppia aggregazione e frequenza

Messaggio  GiampiMaz il Lun 27 Gen 2014 - 23:47

Be' non voleva essere una query...

prova

SELECT distinct a.cognome, a.nome, a.atc, b.atc
 FROM v_terapie a, v_terapie b
WHERE
 a.codice=b.codice

 and a.atc like 'b01ac04' and b.atc like 'b01ac06'

selezionando da centrale statistiche un congruo intervallo di tempo

gp
GiampiMaz
GiampiMaz
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

Re: doppia aggregazione e frequenza

Messaggio  mario shirt il Mar 28 Gen 2014 - 13:02

GiampiMaz ha scritto:Be' non voleva essere una query...

prova

SELECT distinct a.cognome, a.nome, a.atc, b.atc
 FROM v_terapie a, v_terapie b
WHERE
 a.codice=b.codice

 and a.atc like 'b01ac04' and b.atc like 'b01ac06'

selezionando da centrale statistiche un congruo intervallo di tempo

gp
ok funziona
Mario
Quindi se si vuole che 3 o piu' atc siano presenti contemporaneamente basta aggiungere c.atc , c.codice e c.atc like "bbb"?
mario shirt
mario shirt
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

doppia aggregazione frequenza

Messaggio  nanci giacinto il Mar 28 Gen 2014 - 13:11

Grazie caro Giampimaz. Quanto hai scritto vale anche per la seconda query che dovrebbe servire per estrarre dati da due tabelle? grazie ancora ciao
nanci giacinto
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 126
Punti : 3134
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Visualizza il profilo

Torna in alto Andare in basso

doppia aggregazione + frequenza

Messaggio  nanci giacinto il Mer 29 Gen 2014 - 0:20

Salve fatta così la query si blocca, e poi come fare ad aggiungere la frequenza cardiaca e la diagnosi di cardiopatia ischemica (codici icd9 410...414 e v.45.82)?
SELECT distinct a.cognome, a.nome, a.atc, b.atc, c.atc
 FROM v_terapie a, v_terapie b, v_terapie c,
WHERE
 a.codice=b.codice and a.codice = c.codice and b.codice = c.codice
 and a.atc like 'b01ac04' and b.atc like 'b01ac06' and c.atc like  'co7ab%%'
nanci giacinto
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 126
Punti : 3134
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Visualizza il profilo

Torna in alto Andare in basso

Re: doppia aggregazione e frequenza

Messaggio  GiampiMaz il Mer 29 Gen 2014 - 16:26

Questa query (con le tabelle, con le viste non sono a mio agio) seleziona i pazienti con cardiopatia ischemica e angioplastica che negli ultimi 6 mesi hanno prescrizioni sia di aspirina che di clopidogrel.
Mostra quindi l'eventuale betabloccante usato nell'ultimo anno  e l'ultima frequenza cardiaca registrata.

in  AND n.pa_medi like '%' va messo il solito codice per la medicina di gruppo
giampiero

Per renderla più precisa, comprendere anche altri antiaggreganti, andrebbe perfezionata, intanto vedi se ti funziona.

select distinct p.cognome, p.nome, days(p.nascita, today())/365 eta, p.sesso sesso,
(select list (distinct x.co_des) from cart_terap x where p.codice=x.codice and x.co_atc like 'C07%' and x.data_open > today() - 365) AS beta_bloc, 
(select pa.frequenza from cart_press pa where p.codice=pa.codice and 
pa.frequenza Is Not Null And Not Exists (Select a1.codice From cart_press a1
Where pa.codice = a1.codice  And (a1.data_open > pa.data_open
Or (a1.data_open = pa.data_open And a1.rowid>pa.rowid)) And a1.frequenza is Not Null) ) AS Frequenza

from pazienti p, nos_002 n

where
p.codice=n.codice

and p.codice IN (select x.codice from cart_pazpbl x,  cart_pazpbl y  where p.codice=x.codice and x.codice=y.codice and (x.cp_code like '410%' or x.cp_code like '411%' or x.cp_code like '412%' or x.cp_code like '413%' or x.cp_code like '414%') and y.cp_code like 'v45.82' )

and p.codice IN (select z.codice from  cart_terap z where p.codice=z.codice and z.co_atc like 'B01AC04' and z.data_open between today() - 180 and today())
and p.codice IN (select z.codice from  cart_terap z where p.codice=z.codice and z.co_atc like 'B01AC06'  and z.data_open between today() - 180 and today())

AND (n.pa_drevoca IS NULL or n.pa_drevoca >TODAY()) AND (p.decesso IS NULL) 
AND p.pa_convenzione='S'
AND n.pa_medi like '%'
order by 1,2
GiampiMaz
GiampiMaz
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

doppia aggregazione + frequenza

Messaggio  nanci giacinto il Mer 29 Gen 2014 - 23:10

Grazie per la query, purtroppo il risultato è zero pur mettendo come data di estrazione dal 2010 ad oggi. Ho messo il mio codice per la estrazione del mio archivio ma il risultato è sempre zero. Noi della MEDIASS siamo una associazione in rete 8non medicina di gruppo) e ognuno ha il suo codice. Quando faccio le estrazioni per tutti gli altri colleghi dal server entro come amminstratore, non so se questo cambia le cose. Grazie per la tua disponibilità.
nanci giacinto
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 126
Punti : 3134
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Visualizza il profilo

Torna in alto Andare in basso

Re: doppia aggregazione e frequenza

Messaggio  GiampiMaz il Mer 29 Gen 2014 - 23:19

Ciao, a me funziona.
Poichè usa le tabelle è inutile inserire date nella pagina di centrale statistiche che viene completamente baypassata.

prova a togliere del tutto la riga

AND n.pa_medi like '%'


così cerca in tutto il database anche quello dei colleghi associati e guarda se estrae qualcosa, poi si può elaborarla.
gp
GiampiMaz
GiampiMaz
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

doppia aggregazione + frequenza

Messaggio  nanci giacinto il Gio 30 Gen 2014 - 8:33

Ciao Avevo già fatto questa prova e il risultato è sempre zero.
nanci giacinto
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 126
Punti : 3134
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Visualizza il profilo

Torna in alto Andare in basso

doppia aggregazione + frequenza

Messaggio  nanci giacinto il Sab 1 Feb 2014 - 15:32

Salve togliendo l'estrazione delle patologie la query funziona a metà nel senso che mi estrae cognome, nome, età, sesso e frequenza. Non estrae la doppia aggregazione, è come se la seconda parte della query non esiste. A me basterebbe che a quanto estrae questa query si aggiungesse soltanto la doppia aggregazione B01AC04 e B01AC06. Grazie 

select distinct p.cognome, p.nome, days(p.nascita, today())/365 eta, p.sesso sesso,
(select list (distinct x.co_des) from cart_terap x where p.codice=x.codice and x.co_atc like 'C07%' and x.data_open > today() - 365) AS beta_bloc, 
(select pa.frequenza from cart_press pa where p.codice=pa.codice and 
pa.frequenza Is Not Null And Not Exists (Select a1.codice From cart_press a1
Where pa.codice = a1.codice  And (a1.data_open > pa.data_open
Or (a1.data_open = pa.data_open And a1.rowid>pa.rowid)) And a1.frequenza is Not Null) ) AS Frequenza

from pazienti p, nos_002 n

where
p.codice=n.codice

and p.codice IN (select z.codice from  cart_terap z where p.codice=z.codice and z.co_atc like 'B01AC04' and z.data_open between today() - 180 and today())
and p.codice IN (select z.codice from  cart_terap z where p.codice=z.codice and z.co_atc like 'B01AC06'  and z.data_open between today() - 180 and today())
AND (n.pa_drevoca IS NULL or n.pa_drevoca >TODAY()) AND (p.decesso IS NULL)
AND p.pa_convenzione='S'
AND n.pa_medi like '%'
order by 1,2
nanci giacinto
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 126
Punti : 3134
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Visualizza il profilo

Torna in alto Andare in basso

Re: doppia aggregazione e frequenza

Messaggio  Admin il Sab 1 Feb 2014 - 18:00

In effetti la selezione estrae pazienti con doppia aggregazione, probabilmente intendi che venga rappresentata in tabella.
Prova così:
select distinct p.cognome, p.nome, days(p.nascita, today())/365 eta, p.sesso sesso,
(select list (distinct x.co_des) from cart_terap x where p.codice=x.codice and x.co_atc like 'C07%' and x.data_open > today() - 365) AS beta_bloc,
(select pa.frequenza from cart_press pa where p.codice=pa.codice and
pa.frequenza Is Not Null And Not Exists (Select a1.codice From cart_press a1
Where pa.codice = a1.codice  And (a1.data_open > pa.data_open
Or (a1.data_open = pa.data_open And a1.rowid>pa.rowid)) And a1.frequenza is Not Null) ) AS Frequenza,
(select distinct max(z.co_des) from  cart_terap z where p.codice=z.codice and z.co_atc like 'B01AC04' ) Clopidogrel,
(select distinct max(z.co_des) from  cart_terap z where p.codice=z.codice and z.co_atc like 'B01AC06' ) Ac_Acetilsalicilico
from pazienti p, nos_002 n
where p.codice=n.codice
and p.codice IN (select x.codice from cart_pazpbl x where p.codice=x.codice and (x.cp_code like '41[01234]%' OR x.cp_code like 'v45.82' ))
and p.codice IN (select z.codice from  cart_terap z where p.codice=z.codice and z.co_atc like 'B01AC04' and z.data_open between today() - 180 and today())
and p.codice IN (select z.codice from  cart_terap z where p.codice=z.codice and z.co_atc like 'B01AC06'  and z.data_open between today() - 180 and today())
AND (n.pa_drevoca IS NULL or n.pa_drevoca >TODAY()) AND (p.decesso IS NULL)
AND p.pa_convenzione='S'
AND n.pa_medi like '%'
order by 1,2

_________________
L'Amministratore
Giuseppe Blasio
Admin
Admin
Admin
Admin

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

Visualizza il profilo http://utentimillewin.forumattivo.it

Torna in alto Andare in basso

doppia aggregazione e frequenza

Messaggio  nanci giacinto il Sab 1 Feb 2014 - 23:00

OK va bene magnifico grazie, ma è possibile che non esiste un manuale o manualetto del linguaggio sql per fare le query con le tabelle millewin? (non con le viste). Grazie ancora
nanci giacinto
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 126
Punti : 3134
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Visualizza il profilo

Torna in alto Andare in basso

doppia aggregazione e frequenza

Messaggio  nanci giacinto il Sab 1 Feb 2014 - 23:06

Scusate perché due query identiche danno risultato diverso. Quella di Giampi da risultato zero quella di  Admin, che mi sembra quasi identica, da risultato valido.  In cosa si differenziano? grazie saluti
nanci giacinto
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 126
Punti : 3134
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Visualizza il profilo

Torna in alto Andare in basso

Re: doppia aggregazione e frequenza

Messaggio  Admin il Dom 2 Feb 2014 - 11:09

nanci giacinto ha scritto:Scusate perché due query identiche danno risultato diverso. Quella di Giampi da risultato zero quella di  Admin, che mi sembra quasi identica, da risultato valido.  In cosa si differenziano? grazie saluti
La principale differenza sta nel fatto che quella di Giampiero considera come condizione includente la contemporanea esistenza di 2 problemi: la cardiopatia ischemica e l'angioplastica, nella mia è sufficiente uno dei due. A volte una parentesi messa in un posto o in un altro o un and invece di or porta a risultati completamente diversi.
Riguardo al linguaggio SQL ci sono molti manuali e moltissimo si può reperire in internet e molto si può apprendere analizzando le query degli altri, ma una cosa che è stata alla base del mio interessamento a questo mondo affascinante è stato un manuale del caro maestro Leonardo Draghini (detto il Drago) che da parecchio non vedo su questi schermi per cui approfitto per invitarlo a farsi vivo ed in suo onore lo offro a tutti coloro che hanno voglia di divertirsi. CIAO DRAGO !!!!
File allegati
linguaggio_SQL.zip Linguaggio SQLNon hai il permesso di scaricare i file.(301 kB) Scaricato 9 volte

_________________
L'Amministratore
Giuseppe Blasio
Admin
Admin
Admin
Admin

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

Visualizza il profilo http://utentimillewin.forumattivo.it

Torna in alto Andare in basso

Re: doppia aggregazione e frequenza

Messaggio  GiampiMaz il Dom 2 Feb 2014 - 15:52

Caro Nanci, eppure sebbene la query del nostro Admin sia più elegante, la mia deve avere qualche baco logico che sul tuo database la fa fallire (sul mio funziona). Ti sarei grato di provare questa. (ripristina la contemporaneità del problema cardiopatia e angioplastica). Se fallisce prova la seconda (lievissima modifica) e la terza (altra lievissima modifica), se non ti sei rotto la quarta.
Poi discutiamo (è così che col mitico Draghini ho imparato il poco che so) .
gp

1)

select distinct p.cognome, p.nome, days(p.nascita, today())/365 eta, p.sesso sesso,
(select list (distinct x.co_des) from cart_terap x where p.codice=x.codice and x.co_atc like 'C07%' and x.data_open > today() - 365) AS beta_bloc, 
(select pa.frequenza from cart_press pa where p.codice=pa.codice and 
pa.frequenza Is Not Null And Not Exists (Select a1.codice From cart_press a1
Where pa.codice = a1.codice  And (a1.data_open > pa.data_open
Or (a1.data_open = pa.data_open And a1.rowid>pa.rowid)) And a1.frequenza is Not Null) ) AS Frequenza
from pazienti p, nos_002 n
where
p.codice=n.codice
and p.codice IN (select x.codice from cart_pazpbl x where p.codice=x.codice and (x.cp_code like '41[01234]%' ))
and p.codice IN (select x.codice from cart_pazpbl x where p.codice=x.codice and  x.cp_code like 'v45.82' )
and p.codice IN (select z.codice from  cart_terap z where p.codice=z.codice and z.co_atc like 'B01AC04' and z.data_open between today() - 180 and today())
and p.codice IN (select z.codice from  cart_terap z where p.codice=z.codice and z.co_atc like 'B01AC06'  and z.data_open between today() - 180 and today())
AND (n.pa_drevoca IS NULL or n.pa_drevoca >TODAY()) AND (p.decesso IS NULL) 
AND p.pa_convenzione='S'
AND n.pa_medi like '%'
order by 1,2

2)

select distinct p.cognome, p.nome, days(p.nascita, today())/365 eta, p.sesso sesso,
(select list (distinct x.co_des) from cart_terap x where p.codice=x.codice and x.co_atc like 'C07%' and x.data_open > today() - 365) AS beta_bloc, 
(select pa.frequenza from cart_press pa where p.codice=pa.codice and 
pa.frequenza Is Not Null And Not Exists (Select a1.codice From cart_press a1
Where pa.codice = a1.codice  And (a1.data_open > pa.data_open
Or (a1.data_open = pa.data_open And a1.rowid>pa.rowid)) And a1.frequenza is Not Null) ) AS Frequenza
from pazienti p, nos_002 n
where
p.codice=n.codice
and p.codice IN (select distinct x.codice from cart_pazpbl x where p.codice=x.codice and (x.cp_code like '41[01234]%' ))
and p.codice IN (select x.codice from cart_pazpbl x where p.codice=x.codice and  x.cp_code like 'v45.82' )
and p.codice IN (select z.codice from  cart_terap z where p.codice=z.codice and z.co_atc like 'B01AC04' and z.data_open between today() - 180 and today())
and p.codice IN (select z.codice from  cart_terap z where p.codice=z.codice and z.co_atc like 'B01AC06'  and z.data_open between today() - 180 and today())
AND (n.pa_drevoca IS NULL or n.pa_drevoca >TODAY()) AND (p.decesso IS NULL) 
AND p.pa_convenzione='S'
AND n.pa_medi like '%'
order by 1,2

3)

select distinct p.cognome, p.nome, days(p.nascita, today())/365 eta, p.sesso sesso,
(select list (distinct x.co_des) from cart_terap x where p.codice=x.codice and x.co_atc like 'C07%' and x.data_open > today() - 365) AS beta_bloc, 
(select pa.frequenza from cart_press pa where p.codice=pa.codice and 
pa.frequenza Is Not Null And Not Exists (Select a1.codice From cart_press a1
Where pa.codice = a1.codice  And (a1.data_open > pa.data_open
Or (a1.data_open = pa.data_open And a1.rowid>pa.rowid)) And a1.frequenza is Not Null) ) AS Frequenza
from pazienti p, nos_002 n
where
p.codice=n.codice
and p.codice IN (select x.codice from cart_pazpbl x where p.codice=x.codice and (x.cp_code like '41[01234]%' ))
and p.codice IN (select distinct x.codice from cart_pazpbl x where p.codice=x.codice and  x.cp_code like 'v45.82' )
and p.codice IN (select z.codice from  cart_terap z where p.codice=z.codice and z.co_atc like 'B01AC04' and z.data_open between today() - 180 and today())
and p.codice IN (select z.codice from  cart_terap z where p.codice=z.codice and z.co_atc like 'B01AC06'  and z.data_open between today() - 180 and today())
AND (n.pa_drevoca IS NULL or n.pa_drevoca >TODAY()) AND (p.decesso IS NULL) 
AND p.pa_convenzione='S'
AND n.pa_medi like '%'
order by 1,2

4)

select distinct p.cognome, p.nome, days(p.nascita, today())/365 eta, p.sesso sesso,
(select list (distinct x.co_des) from cart_terap x where p.codice=x.codice and x.co_atc like 'C07%' and x.data_open > today() - 365) AS beta_bloc, 
(select pa.frequenza from cart_press pa where p.codice=pa.codice and 
pa.frequenza Is Not Null And Not Exists (Select a1.codice From cart_press a1
Where pa.codice = a1.codice  And (a1.data_open > pa.data_open
Or (a1.data_open = pa.data_open And a1.rowid>pa.rowid)) And a1.frequenza is Not Null) ) AS Frequenza
from pazienti p, nos_002 n
where
p.codice=n.codice
and p.codice IN (select distinct x.codice from cart_pazpbl x where p.codice=x.codice and (x.cp_code like '41[01234]%' ))
and p.codice IN (select distinct x.codice from cart_pazpbl x where p.codice=x.codice and  x.cp_code like 'v45.82' )
and p.codice IN (select z.codice from  cart_terap z where p.codice=z.codice and z.co_atc like 'B01AC04' and z.data_open between today() - 180 and today())
and p.codice IN (select z.codice from  cart_terap z where p.codice=z.codice and z.co_atc like 'B01AC06'  and z.data_open between today() - 180 and today())
AND (n.pa_drevoca IS NULL or n.pa_drevoca >TODAY()) AND (p.decesso IS NULL) 
AND p.pa_convenzione='S'
AND n.pa_medi like '%'
order by 1,2
GiampiMaz
GiampiMaz
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

doppia aggregazione + frequenza

Messaggio  nanci giacinto il Dom 2 Feb 2014 - 23:44

Caro Giampi tutte e quattro danno inesorabilmente risultato zero. Forse c'è qualcosa che non va nel mio archivio, allora perchè  la query di Admin funziona?. Caro Admin "le note per l'utilizzo del linguaggio SQL" del dott. Draghini le posseggo fin dalla loro nascita ma mi pare che in quelle note come nelle altre pubblicate allora da MilleniuM viene utilizzato un linguaggio valido per le viste e non per le tabelle, infatti noto che voi nelle vowstre query utilizzate dei comandi e una sintassi che non si trova in nessuno dei due manuali SQL sopra citati. Grazie ad entrambi per l'aiuto, studierò le vostre query per imparare.
nanci giacinto
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 126
Punti : 3134
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Visualizza il profilo

Torna in alto Andare in basso

Re: doppia aggregazione e frequenza

Messaggio  mario shirt il Lun 3 Feb 2014 - 12:43

nanci giacinto ha scritto:Caro Giampi tutte e quattro danno inesorabilmente risultato zero. Forse c'è qualcosa che non va nel mio archivio, allora perchè  la query di Admin funziona?.

Sei passato a postgress?

Mario

Il mio e' il vecchio .db e funzionano..
mario shirt
mario shirt
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

Re: doppia aggregazione e frequenza

Messaggio  mario shirt il Lun 3 Feb 2014 - 12:53

mario shirt ha scritto:
nanci giacinto ha scritto:Caro Giampi tutte e quattro danno inesorabilmente risultato zero. Forse c'è qualcosa che non va nel mio archivio, allora perchè  la query di Admin funziona?.

Sei passato a postgress?

Mario

Il mio e' il vecchio .db e funzionano..
pardon  Neutral  Neutral  le 4 di Giambi mi danno risultato O

Mario
mario shirt
mario shirt
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

Re: doppia aggregazione e frequenza

Messaggio  GiampiMaz il Lun 3 Feb 2014 - 14:19

Quando una query da come risultato 0 ad alcuni ed ad altri no i motivi possono essere due:
una subquery non è formulata bene e per tale motivo si può bloccare per cui l'intera query risulta 0
o effettivamente nessun paziente risponde ai requisiti richiesti.

Secondo quanto richiesto da Nanci i pazienti dovevano presentare contemporaneamente: problema cardiopatia, problema angioplastica e doppia antiaggregazione.
Ma ce ne sono? (da me 4 pazienti).
Proviamo questa, seleziona i pazienti con problema cardiopatie o problema angioplastica (come quella di Admin) e con doppia antiaggregazione, nella tabella viene indicato se sono presenti o no questi problemi.
Controllate che vi siano pazienti con 'si' sia sotto cardiop che sotto angiopl contemporaneamente.
gp






select distinct p.cognome, p.nome, days(p.nascita, today())/365 eta, p.sesso sesso,
(select list (distinct x.co_des) from cart_terap x where p.codice=x.codice and x.co_atc like 'C07%' and x.data_open > today() - 365) AS beta_bloc, 
(select pa.frequenza from cart_press pa where p.codice=pa.codice and 
pa.frequenza Is Not Null And Not Exists (Select a1.codice From cart_press a1
Where pa.codice = a1.codice  And (a1.data_open > pa.data_open
Or (a1.data_open = pa.data_open And a1.rowid>pa.rowid)) And a1.frequenza is Not Null) ) AS Frequenza,
 if p.codice IN (select x.codice from cart_pazpbl x where p.codice=x.codice and (x.cp_code like '41[01234]%' ))  then 'si' else 'no' endif _cardiop_,
if p.codice IN (select x.codice from cart_pazpbl x where p.codice=x.codice and  x.cp_code like 'v45.82' ) then 'si' else 'no' endif _angiopl_


from pazienti p, nos_002 n
where
p.codice=n.codice
and (p.codice IN (select x.codice from cart_pazpbl x where p.codice=x.codice and (x.cp_code like '41[01234]%' )) OR p.codice IN (select x.codice from cart_pazpbl x where p.codice=x.codice and  x.cp_code like 'v45.82' ) )
and p.codice IN (select z.codice from  cart_terap z where p.codice=z.codice and z.co_atc like 'B01AC04' and z.data_open between today() - 180 and today())
and p.codice IN (select z.codice from  cart_terap z where p.codice=z.codice and z.co_atc like 'B01AC06'  and z.data_open between today() - 180 and today())


AND (n.pa_drevoca IS NULL or n.pa_drevoca >TODAY()) AND (p.decesso IS NULL) 
AND p.pa_convenzione='S'
AND n.pa_medi like '%'

order by 1,2
GiampiMaz
GiampiMaz
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

Re: doppia aggregazione e frequenza

Messaggio  mario shirt il Lun 3 Feb 2014 - 23:39

GiampiMaz ha scritto:Quando una query da come risultato 0 ad alcuni ed ad altri no i motivi possono essere due:
una subquery non è formulata bene e per tale motivo si può bloccare per cui l'intera query risulta 0
o effettivamente nessun paziente risponde ai requisiti richiesti.

Secondo quanto richiesto da Nanci i pazienti dovevano presentare contemporaneamente: problema cardiopatia, problema angioplastica e doppia antiaggregazione.
Ma ce ne sono? (da me 4 pazienti).
Proviamo questa, seleziona i pazienti con problema cardiopatie o problema angioplastica (come quella di Admin) e con doppia antiaggregazione, nella tabella viene indicato se sono presenti o no questi problemi.
Controllate che vi siano pazienti con 'si' sia sotto cardiop che sotto angiopl contemporaneamente.
gp





giusto e perfetto, ora ho 7 paz con doppia antiaggragazione ma non con conteporaneamente problema cardiopatia e angioplastica.
Grazie delle spiegazioni...
Mario
mario shirt
mario shirt
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

doppia aggregazione + frequenza

Messaggio  nanci giacinto il Mer 5 Feb 2014 - 22:29

Salve la seconda query di GiapmiMaz funziona anche se ci sono almeno due pz con angioplastica, doppia aggregazione e beta bloccante che non vengono estratti. Stesso risultato che si ha con la query di Admin. saluti
nanci giacinto
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 126
Punti : 3134
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Visualizza il profilo

Torna in alto Andare in basso

Re: doppia aggregazione e frequenza

Messaggio  Admin il Gio 6 Feb 2014 - 9:46

nanci giacinto ha scritto:Salve la seconda query di GiapmiMaz funziona anche se ci sono almeno due pz con angioplastica, doppia aggregazione e beta bloccante che non vengono estratti. Stesso risultato che si ha con la query di Admin. saluti

La spiegazione può essere dovuta al fatto che almeno uno dei due antiaggreganti sia stato prescritto per l'ultima volta oltre 180 giorni fa.

_________________
L'Amministratore
Giuseppe Blasio
Admin
Admin
Admin
Admin

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

Visualizza il profilo http://utentimillewin.forumattivo.it

Torna in alto Andare in basso

Re: doppia aggregazione e frequenza

Messaggio  Dott.Hiram il Gio 6 Feb 2014 - 10:27

OT: mi è piaciuto il "giusto e perfetto" di Mario.
Dott.Hiram
Dott.Hiram
Membro Senior
Membro Senior

Messaggi : 646
Punti : 3792
Voti per importanza dei messaggi : 15
Data d'iscrizione : 21.02.11

Visualizza il profilo

Torna in alto Andare in basso

Re: doppia aggregazione e frequenza

Messaggio  Contenuto sponsorizzato


Contenuto sponsorizzato


Torna in alto Andare in basso

Pagina 1 di 2 1, 2  Seguente

Torna in alto


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