...a proposito di Query
5 partecipanti
Pagina 1 di 1
...a proposito di Query
..........cercasi volontario per originare prima query di estrazione: COGNOME E NOME PAZ.-INDIRIZZO-DATA NASCITA-PESO-ALTEZZA-BMI-CIRC. ADDOME-FUMO-ALCOL-PA MAX E MIN-QUADRO LIPIDICO-GLICEMIA..........ed una seconda query con quanto sopra riportato + "QUICK IPERTENSIONE" in accertamenti.
Ringrazio coloro che si renderanno disponibili.
Gmario
Ringrazio coloro che si renderanno disponibili.
Gmario
0verland- Nuovo Membro
- Messaggi : 21
Punti : 5050
Voti per importanza dei messaggi : 0
Data d'iscrizione : 21.02.11
Re: ...a proposito di Query
Per la prima query:
Select DISTINCT cognome+' '+Nome Nome, sesso, nascita, CAST((Days(nascita, Today())/365) As CHAR (4) ) eta, n.Pa_Ind Indirizzo, n.Pa_Cit Citta, n.Pa_Pro Prov, n.Pa_Tel Telefono,
(Select Max(a.data_open) From cart_accert a Where a.codice = p.codice And a.ac_code Like '2609' And a.codice Not IN (Select codice From cart_problemi l Where l.codice = a.codice And cp_code Like 'V22%' And (a.data_open Between l.data_open+61 And l.data_open + 340 )) And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_code Like '2609' And a1.codice Not IN (Select codice From cart_problemi l Where l.codice = a1.codice And cp_code Like 'V22%' And (a1.data_open Between l.data_open+31 And l.data_open + 340 )) And (a1.data_open > a.data_open Or (a1.data_open = a.data_open And a1.rowid > a.rowid)))) _Bmi_d_,
(Select Cast(Max(a.ac_val) As Dec(4,1)) From cart_accert a Where a.codice = p.codice And ac_des Like '%BMI%' And a.data_open = _bmi_d_ ) _Bmi_v_,
(Select Cast(Max(a.ac_val) As Dec(4,1)) From cart_accert a Where a.codice = p.codice And ac_des Like 'Peso' And a.data_open = _bmi_d_ ) _Peso_,
(Select Cast(Max(a.ac_val) As Dec(4,1)) From cart_accert a Where a.codice = p.codice And ac_des Like 'Altezza' And a.data_open = _bmi_d_ ) _Altezza_,
(IF _bmi_v_< 20 And p.sesso = 'M' Then ' SottoPeso ' Else IF _bmi_v_< 19 And p.sesso = 'F' Then ' SottoPeso ' Else IF _bmi_v_ Between 20 And 24.9 And p.sesso = 'M' Then ' NormoPeso ' Else IF _bmi_v_ Between 19 And 24.9 And p.sesso = 'F' Then ' NormoPeso ' Else IF _bmi_v_ Between 25 And 29.9 Then ' Sovrappeso ' Else IF _bmi_v_ Between 30 And 34.9 Then ' Obesità I ' Else IF _bmi_v_ Between 35 And 39.9 Then ' Obesità II ' Else IF _bmi_v_ > 39.9 Then ' Obesità III ' Else ' ? ' Endif Endif Endif Endif Endif Endif Endif Endif ) As Diagnosi,
(Select Cast(Max(a.ac_val) As Dec(4,1)) From cart_accert a Where a.codice = p.codice And ac_des Like 'Circonferenza%') _Circonferenza_Vita_,
(Select a.ac_val From cart_accert a Where a.codice = p.codice And a.ac_des Like '%alcool%') _Consumo_Alcool_,
(Select
CAST((case a1.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 a1
WHERE a1.codice=p.codice AND a1.ac_des like 'FUMO'),
(SELECT P_max FROM cart_Press s WHERE s.codice=p.codice AND not Exists (SELECT s1.codice FROM cart_Press s1 WHERE s1.codice=s.codice AND s1.data_open>s.data_open)) P_max,
(SELECT P_min FROM cart_Press s WHERE s.codice=p.codice AND not Exists (SELECT s1.codice FROM cart_Press s1 WHERE s1.codice=s.codice AND s1.data_open>s.data_open)) P_min,
(SELECT ac_val FROM cart_accert a WHERE a.ac_Nt_Code like '90.14.3' AND a.codice=p.codice AND NOT EXISTS (Select a1.codice FROM cart_accert a1 WHERE a1.ac_Nt_Code like '90.14.3' AND a1.codice=a.codice AND a1.data_open>a.data_open)) Colesterolo,
(SELECT ac_val FROM cart_accert a WHERE a.ac_Nt_Code like '90.14.1' AND a.codice=p.codice AND NOT EXISTS (Select a1.codice FROM cart_accert a1 WHERE a1.ac_Nt_Code like '90.14.1' AND a1.codice=a.codice AND a1.data_open>a.data_open)) Colesterolo_HDL,
(SELECT ac_val FROM cart_accert a WHERE a.ac_Nt_Code like '90.14.2' AND a.codice=p.codice AND NOT EXISTS (Select a1.codice FROM cart_accert a1 WHERE a1.ac_Nt_Code like '90.14.2' AND a1.codice=a.codice AND a1.data_open>a.data_open)) Colesterolo_LDL,
(SELECT ac_val FROM cart_accert a WHERE a.ac_Nt_Code like '90.43.2' AND a.codice=p.codice AND NOT EXISTS (Select a1.codice FROM cart_accert a1 WHERE a1.ac_Nt_Code like '90.43.2' AND a1.codice=a.codice AND a1.data_open>a.data_open)) Triglicerifi,
(SELECT a.ac_val FROM cart_accert a WHERE a.ac_Nt_Code like '90.27.1' AND a.codice=p.codice AND NOT EXISTS (Select a1.codice FROM cart_accert a1 WHERE a1.ac_Nt_Code like '90.27.1' AND a1.codice=a.codice AND a1.data_open>a.data_open)) Glicemia,
Today() As DataQuery
FROM pazienti p, nos_002 n, cart_accert a
WHERE p.codice = n.codice AND a.codice=p.codice
AND n.pa_medi Like '%'
And eta >19.9
And _Bmi_v_ > 14.9
And (n.pa_drevoca Is Null Or n.pa_drevoca > Today())
And p.decesso Is Null
Order By 1
Se lavori in gruppo sostituisci % con il codice di gruppo.
Per QUICK IPERTENSIONE:
Select distinct Max(a.datavisita), a.cognome, a.nome, a.sesso, a.datanasc,
Cast(a.codfiscale As Char (24)) Codice_Fiscale,
(Select Max(p.p.massima) FROM v_Pressione p Where a.codice = p.codice) Pas,
(Select Max(p.p.minima) FROM v_Pressione p Where a.codice = p.codice) Pad,
(Select Max(b.risults) FROM V_Accertamenti b Where b.accertamento like 'Colesterolo%'
And a.codice=b.codice) Colesterolo,
(Select Max(c.risults) FROM V_Accertamenti c Where c.accertamento like '%Colesterolo'
And a.codice=c.codice) Hdl_colesterolo,
(Select Max(d.risults) FROM V_Accertamenti d Where d.accertamento like 'Trigliceridi'
And a.codice=d.codice) Trigliceridi,
(Select Max(e.risults) FROM V_Accertamenti e Where e.accertamento like '%Emocromo%'
And a.codice=e.codice) Emocromo,
(Select Max(f.risults) FROM V_Accertamenti f Where f.accertamento like 'Creatinina' And a.codice=f.codice) Creatinina,
(Select Max(g.risults) FROM V_Accertamenti g Where g.accertamento like 'Sodio'
And a.codice=g.codice) Sodio,
(Select Max(h.risults) FROM V_Accertamenti h Where h.accertamento like 'Potassio'
And a.codice=h.codice) Potassio,
(Select Max(i.risults) FROM V_Accertamenti i Where i.accertamento like '%ecg%'
And a.codice=i.codice) ecg
FROM v_ACCERTAMENTI a
WHERE a.accertamento Like '%quick%ipertensione%'
Group By a.cognome, a.nome, a.sesso, a.datanasc, a.codfiscale, a.codice
Order By 2, 3
Trattandosi di una estrazione basata sulle viste occorre selezionare il periodo prima di lanciarla.
Select DISTINCT cognome+' '+Nome Nome, sesso, nascita, CAST((Days(nascita, Today())/365) As CHAR (4) ) eta, n.Pa_Ind Indirizzo, n.Pa_Cit Citta, n.Pa_Pro Prov, n.Pa_Tel Telefono,
(Select Max(a.data_open) From cart_accert a Where a.codice = p.codice And a.ac_code Like '2609' And a.codice Not IN (Select codice From cart_problemi l Where l.codice = a.codice And cp_code Like 'V22%' And (a.data_open Between l.data_open+61 And l.data_open + 340 )) And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_code Like '2609' And a1.codice Not IN (Select codice From cart_problemi l Where l.codice = a1.codice And cp_code Like 'V22%' And (a1.data_open Between l.data_open+31 And l.data_open + 340 )) And (a1.data_open > a.data_open Or (a1.data_open = a.data_open And a1.rowid > a.rowid)))) _Bmi_d_,
(Select Cast(Max(a.ac_val) As Dec(4,1)) From cart_accert a Where a.codice = p.codice And ac_des Like '%BMI%' And a.data_open = _bmi_d_ ) _Bmi_v_,
(Select Cast(Max(a.ac_val) As Dec(4,1)) From cart_accert a Where a.codice = p.codice And ac_des Like 'Peso' And a.data_open = _bmi_d_ ) _Peso_,
(Select Cast(Max(a.ac_val) As Dec(4,1)) From cart_accert a Where a.codice = p.codice And ac_des Like 'Altezza' And a.data_open = _bmi_d_ ) _Altezza_,
(IF _bmi_v_< 20 And p.sesso = 'M' Then ' SottoPeso ' Else IF _bmi_v_< 19 And p.sesso = 'F' Then ' SottoPeso ' Else IF _bmi_v_ Between 20 And 24.9 And p.sesso = 'M' Then ' NormoPeso ' Else IF _bmi_v_ Between 19 And 24.9 And p.sesso = 'F' Then ' NormoPeso ' Else IF _bmi_v_ Between 25 And 29.9 Then ' Sovrappeso ' Else IF _bmi_v_ Between 30 And 34.9 Then ' Obesità I ' Else IF _bmi_v_ Between 35 And 39.9 Then ' Obesità II ' Else IF _bmi_v_ > 39.9 Then ' Obesità III ' Else ' ? ' Endif Endif Endif Endif Endif Endif Endif Endif ) As Diagnosi,
(Select Cast(Max(a.ac_val) As Dec(4,1)) From cart_accert a Where a.codice = p.codice And ac_des Like 'Circonferenza%') _Circonferenza_Vita_,
(Select a.ac_val From cart_accert a Where a.codice = p.codice And a.ac_des Like '%alcool%') _Consumo_Alcool_,
(Select
CAST((case a1.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 a1
WHERE a1.codice=p.codice AND a1.ac_des like 'FUMO'),
(SELECT P_max FROM cart_Press s WHERE s.codice=p.codice AND not Exists (SELECT s1.codice FROM cart_Press s1 WHERE s1.codice=s.codice AND s1.data_open>s.data_open)) P_max,
(SELECT P_min FROM cart_Press s WHERE s.codice=p.codice AND not Exists (SELECT s1.codice FROM cart_Press s1 WHERE s1.codice=s.codice AND s1.data_open>s.data_open)) P_min,
(SELECT ac_val FROM cart_accert a WHERE a.ac_Nt_Code like '90.14.3' AND a.codice=p.codice AND NOT EXISTS (Select a1.codice FROM cart_accert a1 WHERE a1.ac_Nt_Code like '90.14.3' AND a1.codice=a.codice AND a1.data_open>a.data_open)) Colesterolo,
(SELECT ac_val FROM cart_accert a WHERE a.ac_Nt_Code like '90.14.1' AND a.codice=p.codice AND NOT EXISTS (Select a1.codice FROM cart_accert a1 WHERE a1.ac_Nt_Code like '90.14.1' AND a1.codice=a.codice AND a1.data_open>a.data_open)) Colesterolo_HDL,
(SELECT ac_val FROM cart_accert a WHERE a.ac_Nt_Code like '90.14.2' AND a.codice=p.codice AND NOT EXISTS (Select a1.codice FROM cart_accert a1 WHERE a1.ac_Nt_Code like '90.14.2' AND a1.codice=a.codice AND a1.data_open>a.data_open)) Colesterolo_LDL,
(SELECT ac_val FROM cart_accert a WHERE a.ac_Nt_Code like '90.43.2' AND a.codice=p.codice AND NOT EXISTS (Select a1.codice FROM cart_accert a1 WHERE a1.ac_Nt_Code like '90.43.2' AND a1.codice=a.codice AND a1.data_open>a.data_open)) Triglicerifi,
(SELECT a.ac_val FROM cart_accert a WHERE a.ac_Nt_Code like '90.27.1' AND a.codice=p.codice AND NOT EXISTS (Select a1.codice FROM cart_accert a1 WHERE a1.ac_Nt_Code like '90.27.1' AND a1.codice=a.codice AND a1.data_open>a.data_open)) Glicemia,
Today() As DataQuery
FROM pazienti p, nos_002 n, cart_accert a
WHERE p.codice = n.codice AND a.codice=p.codice
AND n.pa_medi Like '%'
And eta >19.9
And _Bmi_v_ > 14.9
And (n.pa_drevoca Is Null Or n.pa_drevoca > Today())
And p.decesso Is Null
Order By 1
Se lavori in gruppo sostituisci % con il codice di gruppo.
Per QUICK IPERTENSIONE:
Select distinct Max(a.datavisita), a.cognome, a.nome, a.sesso, a.datanasc,
Cast(a.codfiscale As Char (24)) Codice_Fiscale,
(Select Max(p.p.massima) FROM v_Pressione p Where a.codice = p.codice) Pas,
(Select Max(p.p.minima) FROM v_Pressione p Where a.codice = p.codice) Pad,
(Select Max(b.risults) FROM V_Accertamenti b Where b.accertamento like 'Colesterolo%'
And a.codice=b.codice) Colesterolo,
(Select Max(c.risults) FROM V_Accertamenti c Where c.accertamento like '%Colesterolo'
And a.codice=c.codice) Hdl_colesterolo,
(Select Max(d.risults) FROM V_Accertamenti d Where d.accertamento like 'Trigliceridi'
And a.codice=d.codice) Trigliceridi,
(Select Max(e.risults) FROM V_Accertamenti e Where e.accertamento like '%Emocromo%'
And a.codice=e.codice) Emocromo,
(Select Max(f.risults) FROM V_Accertamenti f Where f.accertamento like 'Creatinina' And a.codice=f.codice) Creatinina,
(Select Max(g.risults) FROM V_Accertamenti g Where g.accertamento like 'Sodio'
And a.codice=g.codice) Sodio,
(Select Max(h.risults) FROM V_Accertamenti h Where h.accertamento like 'Potassio'
And a.codice=h.codice) Potassio,
(Select Max(i.risults) FROM V_Accertamenti i Where i.accertamento like '%ecg%'
And a.codice=i.codice) ecg
FROM v_ACCERTAMENTI a
WHERE a.accertamento Like '%quick%ipertensione%'
Group By a.cognome, a.nome, a.sesso, a.datanasc, a.codfiscale, a.codice
Order By 2, 3
Trattandosi di una estrazione basata sulle viste occorre selezionare il periodo prima di lanciarla.
Re: ...a proposito di Query
Grazie Giuseppe, puntuale come al solito........però quando lancio la query....mi da 0 righe.......dove sbaglio'
0verland- Nuovo Membro
- Messaggi : 21
Punti : 5050
Voti per importanza dei messaggi : 0
Data d'iscrizione : 21.02.11
Re: ...a proposito di Query
Per la prima query se esce 0 righe vuol dire che non hai inserito nessun valore di BMI.
Per la seconda devi impostare prima la data di inizio e fine del periodo da esaminare, non nella query, ma nella finestra dove si esegue l'estrazione.
Per la seconda devi impostare prima la data di inizio e fine del periodo da esaminare, non nella query, ma nella finestra dove si esegue l'estrazione.
Re: ...a proposito di Query
Per Giuseppe
allora....ho controllato .....i bmi ci sono.....sarà perchè ho installato la vers. 13.38? E' possibile che non si intenda con la tua query?
Grazie per la tua infinita pazienza
gmario
allora....ho controllato .....i bmi ci sono.....sarà perchè ho installato la vers. 13.38? E' possibile che non si intenda con la tua query?
Grazie per la tua infinita pazienza
gmario
0verland- Nuovo Membro
- Messaggi : 21
Punti : 5050
Voti per importanza dei messaggi : 0
Data d'iscrizione : 21.02.11
Re: ...a proposito di Query
Anch'io ho la versione 13.38.
Prova solo con la prima parte che estrae il BMI:
Select Cast(cognome As Char(18)), nome, sesso, nascita, CAST(Years(nascita, Today()) As CHAR (4))eta,
(Select Max(a.data_open) From cart_accert a Where a.codice = p.codice And a.ac_code Like '2609' And ac_val Is Not Null And a.codice Not IN (Select codice From cart_problemi l Where l.codice = a.codice And cp_code Like 'V22%' And (a.data_open Between l.data_open+61 And l.data_open + 340 )) And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_code Like '2609' And a1.codice Not IN (Select codice From cart_problemi l Where l.codice = a1.codice And cp_code Like 'V22%' And (a1.data_open Between l.data_open+31 And l.data_open + 340 )) 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 a.data_open Between Today()-10000 And Today())
_Bmi_d_,
(Select Cast(Max(a.ac_val) As Dec(4,1)) From cart_accert a Where a.codice = p.codice And ac_des Like '%BMI%' And a.data_open = _bmi_d_ )
_Bmi_v_,
(Select Cast(Max(a.ac_val) As Dec(4,1)) From cart_accert a Where a.codice = p.codice And ac_des Like 'Peso' And a.data_open = _bmi_d_ )
_Peso_,
(Select Cast(Max(a.ac_val) As Dec(4,1)) From cart_accert a Where a.codice = p.codice And ac_des Like 'Altezza' And a.data_open = _bmi_d_ )
_Altezza_,
(IF _bmi_v_< 20 And p.sesso = 'M' Then ' SottoPeso ' Else IF _bmi_v_< 19 And p.sesso = 'F' Then ' SottoPeso ' Else IF _bmi_v_ Between 20 And 24.9 And p.sesso = 'M' Then ' NormoPeso ' Else IF _bmi_v_ Between 19 And 24.9 And p.sesso = 'F' Then ' NormoPeso ' Else IF _bmi_v_ Between 25 And 29.9 Then ' Sovrappeso ' Else IF _bmi_v_ Between 30 And 34.9 Then ' Obesità I ' Else IF _bmi_v_ Between 35 And 39.9 Then ' Obesità II ' Else IF _bmi_v_ > 39.9 Then ' Obesità III ' Else ' ? ' Endif Endif Endif Endif Endif Endif Endif Endif )
As Diagnosi, Today() As DataQuery
FROM pazienti p INNER JOIN nos_002 n ON p.codice = n.codice
WHERE n.pa_medi Like '%'
And eta >19.9
And _Bmi_v_ > 14.9
And p.pa_convenzione = 'S'
And (n.pa_drevoca Is Null Or n.pa_drevoca > Today() Or (n.pa_drevoca Between Today()-365 And Today()
And motivo_revoca ='S' ))
And p.decesso Is Null
Order By 1, 2
Prova solo con la prima parte che estrae il BMI:
Select Cast(cognome As Char(18)), nome, sesso, nascita, CAST(Years(nascita, Today()) As CHAR (4))eta,
(Select Max(a.data_open) From cart_accert a Where a.codice = p.codice And a.ac_code Like '2609' And ac_val Is Not Null And a.codice Not IN (Select codice From cart_problemi l Where l.codice = a.codice And cp_code Like 'V22%' And (a.data_open Between l.data_open+61 And l.data_open + 340 )) And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_code Like '2609' And a1.codice Not IN (Select codice From cart_problemi l Where l.codice = a1.codice And cp_code Like 'V22%' And (a1.data_open Between l.data_open+31 And l.data_open + 340 )) 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 a.data_open Between Today()-10000 And Today())
_Bmi_d_,
(Select Cast(Max(a.ac_val) As Dec(4,1)) From cart_accert a Where a.codice = p.codice And ac_des Like '%BMI%' And a.data_open = _bmi_d_ )
_Bmi_v_,
(Select Cast(Max(a.ac_val) As Dec(4,1)) From cart_accert a Where a.codice = p.codice And ac_des Like 'Peso' And a.data_open = _bmi_d_ )
_Peso_,
(Select Cast(Max(a.ac_val) As Dec(4,1)) From cart_accert a Where a.codice = p.codice And ac_des Like 'Altezza' And a.data_open = _bmi_d_ )
_Altezza_,
(IF _bmi_v_< 20 And p.sesso = 'M' Then ' SottoPeso ' Else IF _bmi_v_< 19 And p.sesso = 'F' Then ' SottoPeso ' Else IF _bmi_v_ Between 20 And 24.9 And p.sesso = 'M' Then ' NormoPeso ' Else IF _bmi_v_ Between 19 And 24.9 And p.sesso = 'F' Then ' NormoPeso ' Else IF _bmi_v_ Between 25 And 29.9 Then ' Sovrappeso ' Else IF _bmi_v_ Between 30 And 34.9 Then ' Obesità I ' Else IF _bmi_v_ Between 35 And 39.9 Then ' Obesità II ' Else IF _bmi_v_ > 39.9 Then ' Obesità III ' Else ' ? ' Endif Endif Endif Endif Endif Endif Endif Endif )
As Diagnosi, Today() As DataQuery
FROM pazienti p INNER JOIN nos_002 n ON p.codice = n.codice
WHERE n.pa_medi Like '%'
And eta >19.9
And _Bmi_v_ > 14.9
And p.pa_convenzione = 'S'
And (n.pa_drevoca Is Null Or n.pa_drevoca > Today() Or (n.pa_drevoca Between Today()-365 And Today()
And motivo_revoca ='S' ))
And p.decesso Is Null
Order By 1, 2
Re: ...a proposito di Query
Ok Giuseppe, questa parte funziona.........
0verland- Nuovo Membro
- Messaggi : 21
Punti : 5050
Voti per importanza dei messaggi : 0
Data d'iscrizione : 21.02.11
Re: ...a proposito di Query
Scusate se mi intrometto, ma la query di Giuseppe presenta un uso delle subquery molto rischioso.
Basta che due prescrizioni, ad esempio glicemia, abbiano la stessa data perchè l'intera query dia 0. Infatti le subquery DEVONO avere sempre un solo risultato possibile.
(SELECT a.ac_val FROM cart_accert a WHERE a.ac_Nt_Code like '90.27.1' AND a.codice=p.codice AND NOT EXISTS (Select a1.codice FROM cart_accert a1 WHERE a1.ac_Nt_Code like '90.27.1' AND a1.codice=a.codice AND a1.data_open>a.data_open)) Glicemia
va quindi modificata (e così anche le altre subquery)
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.27.1' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.27.1' 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))
ho aggiunto in verde anche la condizione per escludere risultati nulli.
Sull'uso del confronto di rowid (altri usano metodi diversi) si giunse alcuni anni fa sul vecchio forum dopo numerosi tentativi.
giampiero
Basta che due prescrizioni, ad esempio glicemia, abbiano la stessa data perchè l'intera query dia 0. Infatti le subquery DEVONO avere sempre un solo risultato possibile.
(SELECT a.ac_val FROM cart_accert a WHERE a.ac_Nt_Code like '90.27.1' AND a.codice=p.codice AND NOT EXISTS (Select a1.codice FROM cart_accert a1 WHERE a1.ac_Nt_Code like '90.27.1' AND a1.codice=a.codice AND a1.data_open>a.data_open)) Glicemia
va quindi modificata (e così anche le altre subquery)
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.27.1' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.27.1' 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))
ho aggiunto in verde anche la condizione per escludere risultati nulli.
Sull'uso del confronto di rowid (altri usano metodi diversi) si giunse alcuni anni fa sul vecchio forum dopo numerosi tentativi.
giampiero
GiampiMaz- Membro Junior
- Messaggi : 122
Punti : 5187
Voti per importanza dei messaggi : 33
Data d'iscrizione : 20.02.11
Re: ...a proposito di Query
Grazie Giampi ....ho ricopiato la parte da te evidenziata in rosso su tutte le subquery di accertamenti ematici....ma mi da un errore : SQLSTATE S0002 - TABLE OR VIEW NOT FOUND: CORRELATION NAME "A1" NOT FOUND SELECT DISTINCT COGNOME+"+ NOME NOME, SESSO,NASCITA, CAST((DAYS(NASCITA,TODAY())/365) AS CHAR (4)) ETA,N.PA_IND INDIRIZZO,N.PA
0verland- Nuovo Membro
- Messaggi : 21
Punti : 5050
Voti per importanza dei messaggi : 0
Data d'iscrizione : 21.02.11
Re: ...a proposito di Query
scrivendo hai dimenticato di mettere il punto (esempio A1.ac_val) da qualche parte?
magari aggiungi una subquery alla volta.
giampiero
magari aggiungi una subquery alla volta.
giampiero
GiampiMaz- Membro Junior
- Messaggi : 122
Punti : 5187
Voti per importanza dei messaggi : 33
Data d'iscrizione : 20.02.11
Re: ...a proposito di Query
... non mandatemi a quel paese ma direi che a questo punto visto il perdurare dell'errore nonostante le correzioni....beh sarebbe utile magari riscrivere la query...rendendola + snella: dati paz. compreso indirizzo + peso + h + bmi +circ addome+fumo+alcol+att.fisica+pressione e stop
grazie di cuore
gmario
grazie di cuore
gmario
0verland- Nuovo Membro
- Messaggi : 21
Punti : 5050
Voti per importanza dei messaggi : 0
Data d'iscrizione : 21.02.11
Re: ...a proposito di Query
Ti ho riscritto parte della query, con calma la si può completare.
al posto di % il tuo codice di medicina di gruppo (simpatica la trovata del %).
Provala intanto.
E un augurio che ci possano essere ora tempi migliori!
giampiero
select distinct p.cognome, p.nome, n.pa_ind+' '+n.domi_civico+' '+n.pa_cit as indirizzo, p.nascita,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_des like 'Altezza' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice
= b.codice and b.ac_des like 'Altezza' 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) )
_Altezza_,
(select Cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_des like 'Peso' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_des like 'Peso' 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 ) )
_Peso_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_code like '2609' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code like '2609' 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))
_bmi_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_des Like 'Circonferenza%' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_des Like 'Circonferenza%' 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)) _Circonferenza_Vita_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_des Like '%alcool%' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_des Like '%alcool%' 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)) _Consumo_Alcool_,
(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_,
(Select a.p_max From cart_press a Where (a.codice = p.codice And a.p_max is Not Null) And Not Exists (Select b.codice From cart_press b Where a.codice = b.codice And (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.p_max Is Not Null) ) AS pas,
(Select a.p_min From cart_press a Where (a.codice = p.codice And a.p_min is Not Null) And Not Exists (Select b.codice From cart_press b Where a.codice = b.codice And (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.p_min Is Not Null) ) AS pad,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.27.1' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.27.1' 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)) _Glicemia_
from PAZIENTI p, NOS_002 n
where p.codice=n.codice
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
al posto di % il tuo codice di medicina di gruppo (simpatica la trovata del %).
Provala intanto.
E un augurio che ci possano essere ora tempi migliori!
giampiero
select distinct p.cognome, p.nome, n.pa_ind+' '+n.domi_civico+' '+n.pa_cit as indirizzo, p.nascita,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_des like 'Altezza' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice
= b.codice and b.ac_des like 'Altezza' 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) )
_Altezza_,
(select Cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_des like 'Peso' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_des like 'Peso' 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 ) )
_Peso_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_code like '2609' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code like '2609' 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))
_bmi_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_des Like 'Circonferenza%' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_des Like 'Circonferenza%' 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)) _Circonferenza_Vita_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_des Like '%alcool%' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_des Like '%alcool%' 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)) _Consumo_Alcool_,
(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_,
(Select a.p_max From cart_press a Where (a.codice = p.codice And a.p_max is Not Null) And Not Exists (Select b.codice From cart_press b Where a.codice = b.codice And (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.p_max Is Not Null) ) AS pas,
(Select a.p_min From cart_press a Where (a.codice = p.codice And a.p_min is Not Null) And Not Exists (Select b.codice From cart_press b Where a.codice = b.codice And (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.p_min Is Not Null) ) AS pad,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.27.1' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.27.1' 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)) _Glicemia_
from PAZIENTI p, NOS_002 n
where p.codice=n.codice
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
Ultima modifica di Admin il Dom 13 Nov 2011 - 1:07 - modificato 1 volta. (Motivazione : Mi sono permesso di cambiare n.pa_medi = '%' con n.pa_medi LIKE '%')
GiampiMaz- Membro Junior
- Messaggi : 122
Punti : 5187
Voti per importanza dei messaggi : 33
Data d'iscrizione : 20.02.11
Re: ...a proposito di Query
Grazie a Gianpiero, come sempre estremamente preciso. La query completa dovrebbe essere questa:
Select distinct p.cognome, p.nome, n.pa_ind+' '+n.domi_civico+' '+n.pa_cit as indirizzo, p.nascita, CAST(Years(p.nascita, Today()) As CHAR (4)) eta,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_code like '1935' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code like '1935' 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) )
_Altezza_,
(select Cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_code like '1946' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code like '1946' 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 ) )
_Peso_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_code like '2609' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code like '2609' 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))
_bmi_,
(select MAX(a.ac_val) from cart_accert a where ( a.codice=p.codice and a.ac_code Like '2835' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '2835' 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)) _Attivita_Fisica_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_code Like '3560' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '3560' 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)) _Circonferenza_Vita_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_code Like '2904' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '2904' 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)) _Consumo_Alcool_,
(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_code like '2832' and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '2832' 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_,
(Select a.p_max From cart_press a Where (a.codice = p.codice And a.p_max is Not Null) And Not Exists (Select b.codice From cart_press b Where a.codice = b.codice And (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.p_max Is Not Null) ) AS pas,
(Select a.p_min From cart_press a Where (a.codice = p.codice And a.p_min is Not Null) And Not Exists (Select b.codice From cart_press b Where a.codice = b.codice And (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.p_min Is Not Null) ) AS pad,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.14.3' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.14.3' 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)) _Colesterolo_,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.14.1' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.14.1' 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)) _Colesterolo_HDL_,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.14.2' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.14.2' 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)) _Colesterolo_LDL_,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.43.2' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.43.2' 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)) _Trigliceridi_,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.27.1' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.27.1' 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)) _Glicemia_
from PAZIENTI p, NOS_002 n
where p.codice=n.codice
AND _bmi_ is not null
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
Ho aggiunto: AND _bmi_ is not null per includere solo i pazienti con un valore di BMI, se si vogliono includere tutti i pazienti basta cancellarlo.
Select distinct p.cognome, p.nome, n.pa_ind+' '+n.domi_civico+' '+n.pa_cit as indirizzo, p.nascita, CAST(Years(p.nascita, Today()) As CHAR (4)) eta,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_code like '1935' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code like '1935' 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) )
_Altezza_,
(select Cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_code like '1946' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code like '1946' 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 ) )
_Peso_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_code like '2609' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code like '2609' 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))
_bmi_,
(select MAX(a.ac_val) from cart_accert a where ( a.codice=p.codice and a.ac_code Like '2835' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '2835' 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)) _Attivita_Fisica_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_code Like '3560' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '3560' 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)) _Circonferenza_Vita_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_code Like '2904' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '2904' 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)) _Consumo_Alcool_,
(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_code like '2832' and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '2832' 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_,
(Select a.p_max From cart_press a Where (a.codice = p.codice And a.p_max is Not Null) And Not Exists (Select b.codice From cart_press b Where a.codice = b.codice And (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.p_max Is Not Null) ) AS pas,
(Select a.p_min From cart_press a Where (a.codice = p.codice And a.p_min is Not Null) And Not Exists (Select b.codice From cart_press b Where a.codice = b.codice And (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.p_min Is Not Null) ) AS pad,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.14.3' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.14.3' 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)) _Colesterolo_,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.14.1' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.14.1' 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)) _Colesterolo_HDL_,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.14.2' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.14.2' 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)) _Colesterolo_LDL_,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.43.2' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.43.2' 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)) _Trigliceridi_,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.27.1' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.27.1' 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)) _Glicemia_
from PAZIENTI p, NOS_002 n
where p.codice=n.codice
AND _bmi_ is not null
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
Ho aggiunto: AND _bmi_ is not null per includere solo i pazienti con un valore di BMI, se si vogliono includere tutti i pazienti basta cancellarlo.
Re: ...a proposito di Query
Giampi
per quanto riguarda gli auguri concordo con te......abbiamo toccato il fondo....ed adesso possiamo ricominciare a sperare,...............per la query.....allora funziona , xò mi mostra tutti i pazienti, io volevo solo i pazienti ai quali avevo fatto bmi,peso,fumo,etc in un certo periodo ( dal 01/10/10 ad oggi ) che seleziono poi io.
grazie e
silvio game over
per quanto riguarda gli auguri concordo con te......abbiamo toccato il fondo....ed adesso possiamo ricominciare a sperare,...............per la query.....allora funziona , xò mi mostra tutti i pazienti, io volevo solo i pazienti ai quali avevo fatto bmi,peso,fumo,etc in un certo periodo ( dal 01/10/10 ad oggi ) che seleziono poi io.
grazie e
silvio game over
0verland- Nuovo Membro
- Messaggi : 21
Punti : 5050
Voti per importanza dei messaggi : 0
Data d'iscrizione : 21.02.11
Re: ...a proposito di Query
Ringrazio Gianpiero e Giuseppe per la disponibilità dimostratami........la query funziona . Approfitto di voi x chiedere una cosa che ho già postato in precedenza senza avere riscontri: è possibile quando prescriviamo farmaci avere la possibilità di biffare invece che "non sostituibile" la seguente dicitura:"sostituibile con farmaco uguale per principio attivo ed eccipienti"? Secondo voi è fattibile? Ho chiesto alla Dedalus ma mi hanno risposto picche.
Gmario
Gmario
0verland- Nuovo Membro
- Messaggi : 21
Punti : 5050
Voti per importanza dei messaggi : 0
Data d'iscrizione : 21.02.11
Re: ...a proposito di Query
0verland ha scritto:Approfitto di voi x chiedere una cosa che ho già postato in precedenza senza avere riscontri: è possibile quando prescriviamo farmaci avere la possibilità di biffare invece che "non sostituibile" la seguente dicitura:"sostituibile con farmaco uguale per principio attivo ed eccipienti"? Secondo voi è fattibile? Ho chiesto alla Dedalus ma mi hanno risposto picche.
Gmario
A riguardo si sta discutendo al seguente post: https://utentimillewin.forumattivo.it/t387-farmaci-equivalenti
Re: ...a proposito di Query
Per selezionare il periodo da esaminare ho introdotto la data del BMI:
Select distinct p.cognome, p.nome, n.pa_ind+' '+n.domi_civico+' '+n.pa_cit as indirizzo, p.nascita, CAST(Years(p.nascita, Today()) As CHAR (4)) eta,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where a.codice=p.codice and a.ac_code like '1935' and a.data_open = _Data_BMI_) _Altezza_,
(select Cast(a.ac_val+0 as dec(4,1)) from cart_accert a where a.codice=p.codice and a.ac_code like '1946' and a.data_open = _Data_BMI_) _Peso_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where a.codice=p.codice and a.ac_code like '2609' and a.data_open = _Data_BMI_) _BMI_, ' ',
(Select Max(a.data_open) From cart_accert a Where (a.codice = p.codice And a.ac_code Like '2609' And ac_val Is Not Null) And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_code Like '2609' 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)) _Data_BMI_,
(select MAX(a.ac_val) from cart_accert a where ( a.codice=p.codice and a.ac_code Like '2835' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '2835' 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)) _Attivita_Fisica_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_code Like '3560' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '3560' 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)) _Circonferenza_Vita_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_code Like '2904' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '2904' 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)) _Consumo_Alcool_,
(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_code like '2832' and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '2832' 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_,
(Select a.p_max From cart_press a Where (a.codice = p.codice And a.p_max is Not Null) And Not Exists (Select b.codice From cart_press b Where a.codice = b.codice And (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.p_max Is Not Null) ) AS pas,
(Select a.p_min From cart_press a Where (a.codice = p.codice And a.p_min is Not Null) And Not Exists (Select b.codice From cart_press b Where a.codice = b.codice And (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.p_min Is Not Null) ) AS pad,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.14.3' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.14.3' 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)) _Colesterolo_,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.14.1' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.14.1' 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)) _Colesterolo_HDL_,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.14.2' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.14.2' 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)) _Colesterolo_LDL_,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.43.2' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.43.2' 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)) _Trigliceridi_,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.27.1' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.27.1' 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)) _Glicemia_
FROM PAZIENTI p, NOS_002 n
WHERE p.codice=n.codice
AND _bmi_ is not null
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 '%'
AND _Data_BMI_ BETWEEN '2010/10/01' AND TODAY()
order by 1,2
Riguardo alla domanda posta circa la sostituibilità dei farmaci solo i tecnici millennium possono modificare il programma.
Select distinct p.cognome, p.nome, n.pa_ind+' '+n.domi_civico+' '+n.pa_cit as indirizzo, p.nascita, CAST(Years(p.nascita, Today()) As CHAR (4)) eta,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where a.codice=p.codice and a.ac_code like '1935' and a.data_open = _Data_BMI_) _Altezza_,
(select Cast(a.ac_val+0 as dec(4,1)) from cart_accert a where a.codice=p.codice and a.ac_code like '1946' and a.data_open = _Data_BMI_) _Peso_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where a.codice=p.codice and a.ac_code like '2609' and a.data_open = _Data_BMI_) _BMI_, ' ',
(Select Max(a.data_open) From cart_accert a Where (a.codice = p.codice And a.ac_code Like '2609' And ac_val Is Not Null) And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_code Like '2609' 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)) _Data_BMI_,
(select MAX(a.ac_val) from cart_accert a where ( a.codice=p.codice and a.ac_code Like '2835' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '2835' 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)) _Attivita_Fisica_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_code Like '3560' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '3560' 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)) _Circonferenza_Vita_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_code Like '2904' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '2904' 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)) _Consumo_Alcool_,
(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_code like '2832' and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '2832' 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_,
(Select a.p_max From cart_press a Where (a.codice = p.codice And a.p_max is Not Null) And Not Exists (Select b.codice From cart_press b Where a.codice = b.codice And (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.p_max Is Not Null) ) AS pas,
(Select a.p_min From cart_press a Where (a.codice = p.codice And a.p_min is Not Null) And Not Exists (Select b.codice From cart_press b Where a.codice = b.codice And (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.p_min Is Not Null) ) AS pad,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.14.3' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.14.3' 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)) _Colesterolo_,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.14.1' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.14.1' 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)) _Colesterolo_HDL_,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.14.2' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.14.2' 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)) _Colesterolo_LDL_,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.43.2' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.43.2' 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)) _Trigliceridi_,
(Select a.ac_val From cart_accert a Where a.ac_Nt_Code like '90.27.1' AND a.codice=p.codice And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_Nt_Code like '90.27.1' 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)) _Glicemia_
FROM PAZIENTI p, NOS_002 n
WHERE p.codice=n.codice
AND _bmi_ is not null
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 '%'
AND _Data_BMI_ BETWEEN '2010/10/01' AND TODAY()
order by 1,2
Riguardo alla domanda posta circa la sostituibilità dei farmaci solo i tecnici millennium possono modificare il programma.
Re: ...a proposito di Query
0verland ha scritto:Ringrazio Gianpiero e Giuseppe per la disponibilità dimostratami........la query funziona . Approfitto di voi x chiedere una cosa che ho già postato in precedenza senza avere riscontri: è possibile quando prescriviamo farmaci avere la possibilità di biffare invece che "non sostituibile" la seguente dicitura:"sostituibile con farmaco uguale per principio attivo ed eccipienti"? Secondo voi è fattibile? Ho chiesto alla Dedalus ma mi hanno risposto picche.
Gmario
Ho aggiunto nella tabella posologie(mille utility tabelle posologie aggiungi) la dizione (mi par pericolosa la tua descrizione) la frase "sostituibile con generico pari caratteristiche" (così by passi le diverse indicazioni dei generici e scarichi sul farmacista la "colpa" di avere dato un generico privo di indicazione specifica!).
ciao
bruno fassio
chinaski- Nuovo Membro
- Messaggi : 25
Punti : 5052
Voti per importanza dei messaggi : 0
Data d'iscrizione : 03.03.11
......a proposito query
........la query che giampy mi ha postato è ok.....chiedo però se è possibile aggiungere ai dati dei paz. sia il CF che il LUOGO NASCITA togliendo gli esami ematochimici che ahimè non mi servono
grazie
gmario
grazie
gmario
0verland- Nuovo Membro
- Messaggi : 21
Punti : 5050
Voti per importanza dei messaggi : 0
Data d'iscrizione : 21.02.11
Re: ...a proposito di Query
Ecco fatto:
Select distinct p.cognome, p.nome, CAST(p.Codice_Fiscale as CHAR (22)) Codice_Fiscale, p.nascita D_Nascita, p.Comune_Di_Nascita, p.Provincia_Nascita PR, CAST(Years(p.nascita, Today()) As CHAR (4)) eta, p.sesso, n.pa_ind+' '+n.domi_civico+' '+n.pa_cit as indirizzo,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where a.codice=p.codice and a.ac_code like '1935' and a.data_open = _Data_BMI_) _Altezza_,
(select Cast(a.ac_val+0 as dec(4,1)) from cart_accert a where a.codice=p.codice and a.ac_code like '1946' and a.data_open = _Data_BMI_) _Peso_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where a.codice=p.codice and a.ac_code like '2609' and a.data_open = _Data_BMI_) _BMI_, ' ',
(Select Max(a.data_open) From cart_accert a Where (a.codice = p.codice And a.ac_code Like '2609' And ac_val Is Not Null) And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_code Like '2609' 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)) _Data_BMI_,
(select MAX(a.ac_val) from cart_accert a where ( a.codice=p.codice and a.ac_code Like '2835' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '2835' 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)) _Attivita_Fisica_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_code Like '3560' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '3560' 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)) _Circonferenza_Vita_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_code Like '2904' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '2904' 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)) _Consumo_Alcool_,
(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_code like '2832' and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '2832' 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_,
(Select a.p_max From cart_press a Where (a.codice = p.codice And a.p_max is Not Null) And Not Exists (Select b.codice From cart_press b Where a.codice = b.codice And (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.p_max Is Not Null) ) AS pas,
(Select a.p_min From cart_press a Where (a.codice = p.codice And a.p_min is Not Null) And Not Exists (Select b.codice From cart_press b Where a.codice = b.codice And (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.p_min Is Not Null) ) AS pad
FROM PAZIENTI p, NOS_002 n
WHERE p.codice=n.codice
AND _bmi_ is not null
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 '%'
AND _Data_BMI_ BETWEEN '2010/10/01' AND TODAY()
order by 1,2
Select distinct p.cognome, p.nome, CAST(p.Codice_Fiscale as CHAR (22)) Codice_Fiscale, p.nascita D_Nascita, p.Comune_Di_Nascita, p.Provincia_Nascita PR, CAST(Years(p.nascita, Today()) As CHAR (4)) eta, p.sesso, n.pa_ind+' '+n.domi_civico+' '+n.pa_cit as indirizzo,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where a.codice=p.codice and a.ac_code like '1935' and a.data_open = _Data_BMI_) _Altezza_,
(select Cast(a.ac_val+0 as dec(4,1)) from cart_accert a where a.codice=p.codice and a.ac_code like '1946' and a.data_open = _Data_BMI_) _Peso_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where a.codice=p.codice and a.ac_code like '2609' and a.data_open = _Data_BMI_) _BMI_, ' ',
(Select Max(a.data_open) From cart_accert a Where (a.codice = p.codice And a.ac_code Like '2609' And ac_val Is Not Null) And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_code Like '2609' 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)) _Data_BMI_,
(select MAX(a.ac_val) from cart_accert a where ( a.codice=p.codice and a.ac_code Like '2835' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '2835' 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)) _Attivita_Fisica_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_code Like '3560' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '3560' 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)) _Circonferenza_Vita_,
(select cast(a.ac_val+0 as dec(4,1)) from cart_accert a where ( a.codice=p.codice and a.ac_code Like '2904' and a.ac_val is not null ) and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '2904' 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)) _Consumo_Alcool_,
(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_code like '2832' and not exists (select b.codice from cart_accert b where a.codice = b.codice and b.ac_code Like '2832' 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_,
(Select a.p_max From cart_press a Where (a.codice = p.codice And a.p_max is Not Null) And Not Exists (Select b.codice From cart_press b Where a.codice = b.codice And (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.p_max Is Not Null) ) AS pas,
(Select a.p_min From cart_press a Where (a.codice = p.codice And a.p_min is Not Null) And Not Exists (Select b.codice From cart_press b Where a.codice = b.codice And (b.data_open>a.data_open or (b.data_open=a.data_open and b.rowid>a.rowid)) and b.p_min Is Not Null) ) AS pad
FROM PAZIENTI p, NOS_002 n
WHERE p.codice=n.codice
AND _bmi_ is not null
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 '%'
AND _Data_BMI_ BETWEEN '2010/10/01' AND TODAY()
order by 1,2
......a proposito di Query
....grazie
gmario
gmario
0verland- Nuovo Membro
- Messaggi : 21
Punti : 5050
Voti per importanza dei messaggi : 0
Data d'iscrizione : 21.02.11
Argomenti simili
» a proposito di... H24
» Spending review
» A proposito di influenza
» Query complessa
» Inserimento campo calcolato "orario" in un certificato?
» Spending review
» A proposito di influenza
» Query complessa
» Inserimento campo calcolato "orario" in un certificato?
Pagina 1 di 1
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.