aiuto su integrazione estrazione sql
2 partecipanti
Pagina 1 di 1
aiuto su integrazione estrazione sql
Salve a tutti gli esperti:un progetto della asl consisteva nel cercare il 40% di pazienti tra 18 e 60 anni idonei o no a donare il sangue. ho ricevuto una stringa dalla asl x estrarre tutti i pazienti , mi sono accorto che anche se prima di lanciare la query si biffava di escludere i deceduti ed i revocati o si impostava solo un periodo temporale la query andava per i cavoli suoi. Questo comporta che la lista dei paz su cui calcolare la percentuale da raggiungere e' molto piu' alta di quella effettiva. ho provato a correggerla inserendo una stringa che accludo, ma mi da errore. Problemi di viste?
[COMMENTO]
[SQL]
SELECT (year(today())-year(p.datanasc)) eta, p.sesso
, ( SELECT max(a.data_open) FROM cart_accert a WHERE a.codice = p.codice AND ac_code = '4279' 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 string(x.data_open, x.time_last) > string(a.data_open, a.time_last) ) ) D_Test_donazioni
, ( SELECT max(a.ac_val) FROM cart_accert a WHERE a.codice = p.codice AND ac_code = '4279' 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 string(x.data_open, x.time_last) > string(a.data_open, a.time_last) ) )Test_donazioni
, p.codfiscale, p. medico
FROM V_PAZIENTI p
where eta>17 and eta<61
ho cercato di inserire in vari punti
AND (n.pa_drevoca IS NULL or n.pa_drevoca >TODAY()) AND (p.decesso IS NULL)
AND p.pa_convenzione='S'
ma mi da errore per problemi di viste? qualcuno mi puo' spiegare l'errore che faccio?
GrAZIE
Mario
[COMMENTO]
[SQL]
SELECT (year(today())-year(p.datanasc)) eta, p.sesso
, ( SELECT max(a.data_open) FROM cart_accert a WHERE a.codice = p.codice AND ac_code = '4279' 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 string(x.data_open, x.time_last) > string(a.data_open, a.time_last) ) ) D_Test_donazioni
, ( SELECT max(a.ac_val) FROM cart_accert a WHERE a.codice = p.codice AND ac_code = '4279' 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 string(x.data_open, x.time_last) > string(a.data_open, a.time_last) ) )Test_donazioni
, p.codfiscale, p. medico
FROM V_PAZIENTI p
where eta>17 and eta<61
ho cercato di inserire in vari punti
AND (n.pa_drevoca IS NULL or n.pa_drevoca >TODAY()) AND (p.decesso IS NULL)
AND p.pa_convenzione='S'
ma mi da errore per problemi di viste? qualcuno mi puo' spiegare l'errore che faccio?
GrAZIE
Mario
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5391
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Re: aiuto su integrazione estrazione sql
Ho corretto gli errori più grossolani, Non ho avuto modo di verificare tutta la query. Devo controllare a cosa corrisponde ac_code = '4279' poiché per quello che ne so con quel codice potrebbe non funzionare mai in quanto non estrae l'accertamento voluto. Si tratta per caso di un codice legato ad un accertamento personalizzato?
SELECT p.nome, p.cognome, (year(today())-year(p.datanasc)) eta, p.sesso, p.codfiscale, p. medico,
( SELECT max(a.data_open) FROM cart_accert a WHERE a.codice = p.codice AND ac_code = '4279' 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 string(x.data_open, x.time_last) > string(a.data_open, a.time_last) ) ) D_Test_donazioni,
( SELECT max(a.ac_val) FROM cart_accert a WHERE a.codice = p.codice AND ac_code = '4279' 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 string(x.data_open, x.time_last) > string(a.data_open, a.time_last) ) )Test_donazioni
FROM V_PAZIENTI p,
where eta>17 and eta<61
AND (p.datarevoca IS NULL or p.datarevoca >TODAY()) AND (p.datadecess IS NULL)
AND p.convenzion='S'
Order by 1, 2, 3
SELECT p.nome, p.cognome, (year(today())-year(p.datanasc)) eta, p.sesso, p.codfiscale, p. medico,
( SELECT max(a.data_open) FROM cart_accert a WHERE a.codice = p.codice AND ac_code = '4279' 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 string(x.data_open, x.time_last) > string(a.data_open, a.time_last) ) ) D_Test_donazioni,
( SELECT max(a.ac_val) FROM cart_accert a WHERE a.codice = p.codice AND ac_code = '4279' 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 string(x.data_open, x.time_last) > string(a.data_open, a.time_last) ) )Test_donazioni
FROM V_PAZIENTI p,
where eta>17 and eta<61
AND (p.datarevoca IS NULL or p.datarevoca >TODAY()) AND (p.datadecess IS NULL)
AND p.convenzion='S'
Order by 1, 2, 3
Re: aiuto su integrazione estrazione sql
Lucio Mignone ha scritto:Ho corretto gli errori più grossolani, Non ho avuto modo di verificare tutta la query. Devo controllare a cosa corrisponde ac_code = '4279' poiché per quello che ne so con quel codice potrebbe non funzionare mai in quanto non estrae l'accertamento voluto. Si tratta per caso di un codice legato ad un accertamento personalizzato?
SELECT p.nome, p.cognome, (year(today())-year(p.datanasc)) eta, p.sesso, p.codfiscale, p. medico,
( SELECT max(a.data_open) FROM cart_accert a WHERE a.codice = p.codice AND ac_code = '4279' 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 string(x.data_open, x.time_last) > string(a.data_open, a.time_last) ) ) D_Test_donazioni,
( SELECT max(a.ac_val) FROM cart_accert a WHERE a.codice = p.codice AND ac_code = '4279' 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 string(x.data_open, x.time_last) > string(a.data_open, a.time_last) ) )Test_donazioni
FROM V_PAZIENTI p,
where eta>17 and eta<61
AND (p.datarevoca IS NULL or p.datarevoca >TODAY()) AND (p.datadecess IS NULL)
AND p.convenzion='S'
Order by 1, 2, 3
4279 dovrebbe essere il codice dell'accertamento personalizzato x l'asl 11 "idoneita donazione sangue". La provo e ti dico.. Grazie
Mario
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5391
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5391
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Re: aiuto su integrazione estrazione sql
mario shirt ha scritto:Ok va bene .. allora l'errore era una "a" in piu'?
Mario
mancavano nome e cognome del paziente nella SELECT,
p.codfiscale, p. medico erano messi a caso nel mezzo della query (forse un errore di copia ed incolla?),
ed infine con le righe
AND (n.pa_drevoca IS NULL or n.pa_drevoca >TODAY()) AND (p.decesso IS NULL)
AND p.pa_convenzione='S'
andavi a cercare in alcune tabellle non dichiarate in FROM, mentre nel tuo caso è più semplice e lineare cercare solo nella vista v_pazienti.
Se ci dici come si chiama l'accertamento personalizzato è possibile modificare la query per renderla sicuramente funzionante, per la poca esperienza che ho con l'espressione ac_code = (forse è preferibile ac_code like ma lascio la parola ai maestri...) e quel codice interno dell'accertamento è possibile che in alcuni casi non ti estragga niente.
Re: aiuto su integrazione estrazione sql
[quote="Lucio Mignone"]
mancavano nome e cognome del paziente nella SELECT,
L'accertamento e' idoneita' donazione (aggiunto nella lista per i medici asl !!, ma lo puoi scaricare anche tu dal sito del Millennium)
La query funziona bene..
Grazie
Mario
mario shirt ha scritto:Ok va bene .. allora l'errore era una "a" in piu'?
Mario
mancavano nome e cognome del paziente nella SELECT,
veramente devono mancare... per la privacy (li avevo aggiunti io per vedere chi erano)
p.codfiscale, p. medico erano messi a caso nel mezzo della query (forse un errore di copia ed incolla?),
sono le uniche 2 cose che vuole l'asl (forse il cod. fiscale lo tolgo sempre per privacy!!)
ed infine con le righe
AND (n.pa_drevoca IS NULL or n.pa_drevoca >TODAY()) AND (p.decesso IS NULL)
AND p.pa_convenzione='S'
andavi a cercare in alcune tabellle non dichiarate in FROM, mentre nel tuo caso è più semplice e lineare cercare solo nella vista v_pazienti.
Se ci dici come si chiama l'accertamento personalizzato è possibile modificare la query per renderla sicuramente funzionante, per la poca esperienza che ho con l'espressione ac_code = (forse è preferibile ac_code like ma lascio la parola ai maestri...) e quel codice interno dell'accertamento è possibile che in alcuni casi non ti estragga niente.
L'accertamento e' idoneita' donazione (aggiunto nella lista per i medici asl !!, ma lo puoi scaricare anche tu dal sito del Millennium)
La query funziona bene..
Grazie
Mario
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5391
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Re: aiuto su integrazione estrazione sql
mario shirt ha scritto:
L'accertamento e' idoneita' donazione (aggiunto nella lista per i medici asl !!, ma lo puoi scaricare anche tu dal sito del Millennium)
La query funziona bene..
Grazie
Mario
Se la query funziona lasciamola così... squadra che vince non si cambia!
Argomenti simili
» ---------------aiuto estrazione dati per tesi --------------------------------
» SELECT DISTINCT... AIUTO! - evoluta poi in ESTRAZIONE BMI e RCV
» aiuto su esenzioni
» Aiuto Query
» Aiuto su Istruzione SELECT
» SELECT DISTINCT... AIUTO! - evoluta poi in ESTRAZIONE BMI e RCV
» aiuto su esenzioni
» Aiuto Query
» Aiuto su Istruzione SELECT
Pagina 1 di 1
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.