vaccinazioni tetano con lotto per postgres
2 partecipanti
vaccinazioni tetano con lotto per postgres
Chi mi puo' adattare a postgres questa query x estrazione vaccinazioni tetano con lotto prima funzionante ?
[COMMENTO]
l penultimo rigo lo devi sostituire con:
AND va_data BETWEEN '1900/01/01' AND '2012/11/01'Le date di inizio e fine le decidi tu.
[SQL]
Select Cognome+' '+Nome Nome, nascita, CAST(codice_fiscale AS CHAR (22)) , va_tipo
Tipo, va_data Data, va_scad Scadenza, va_rich Richiamo, va_code Codice, Co_Codifa
Cod_Minsan, Co_des Vaccino, va_note Note, fatto_io Posto, dose,
(substr(lotto,1,14)+'
'+(substr(lotto,19,2))+'/'+(substr(lotto,17,2))+'/'+(substr(lotto,15,2)))
Lotto_E_Scadenza, flag_reazioni_avverse
FROM pazienti p, cart_vaccini v
WHERE p.codice=v.codice
AND va_tipo like '%tetano%'
AND va_data BETWEEN '2014/06/01' AND '2015/02/01'
/*AND (va_data > Today()-3650 OR va_data is null) */
Grazie
Mario
[COMMENTO]
l penultimo rigo lo devi sostituire con:
AND va_data BETWEEN '1900/01/01' AND '2012/11/01'Le date di inizio e fine le decidi tu.
[SQL]
Select Cognome+' '+Nome Nome, nascita, CAST(codice_fiscale AS CHAR (22)) , va_tipo
Tipo, va_data Data, va_scad Scadenza, va_rich Richiamo, va_code Codice, Co_Codifa
Cod_Minsan, Co_des Vaccino, va_note Note, fatto_io Posto, dose,
(substr(lotto,1,14)+'
'+(substr(lotto,19,2))+'/'+(substr(lotto,17,2))+'/'+(substr(lotto,15,2)))
Lotto_E_Scadenza, flag_reazioni_avverse
FROM pazienti p, cart_vaccini v
WHERE p.codice=v.codice
AND va_tipo like '%tetano%'
AND va_data BETWEEN '2014/06/01' AND '2015/02/01'
/*AND (va_data > Today()-3650 OR va_data is null) */
Grazie
Mario
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5389
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Re: vaccinazioni tetano con lotto per postgres
Prova eventualmente con :
SELECT Distinct Cast( p.cognome As Char(20)) , p.nome , Cast( DateFormat( Max( p.nascita), 'yyyy/mm/dd' ) As Char(16)) , p.sesso ,
Days( p.nascita, '2015/01/01')*24/8766 As eta , Cast( p.codice_fiscale As Char(16)) As codfisc_paz ,
Cast( DateFormat( Max( v.va_data), 'yyyy/mm/dd' ) As Char(16)) As Influ_d , Max( v.va_tipo) As vaccino ,
( Select Max( v.va_scad) From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Tetan%' And v.va_data Is Null And Not Exists (Select v1.codice
From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Tetan%' And (v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid>v.rowid)))) As data_richiamo ,
Cast( Max( v.va_rich) As smallInt ) As tipo_richiamo , Max( v.va_code) As Vacc_code ,
Case Max( fatto_io) WHEN 'D' THEN ' in Office' WHEN 'E' THEN ' Domicilio' WHEN 'F' THEN ' in RSA'
WHEN 'A' THEN ' Priv in Office' WHEN 'B' THEN ' Priv Domicilio' WHEN 'C' THEN ' Priv in RSA' ELSE Max( fatto_io) END As sede ,
Trim( Left( v.lotto , Position( ' ' in v.lotto)-1 )) As num_lotto , Left( '20', 2) || SubString( v.lotto From Length( v.lotto )-5 For 2 ) || '-' || SubString( v.lotto From Length( v.lotto )-3 For 2 ) ||'-' || Right( lotto, 2 ) As scadenza_lotto ,
/* Trim( Right( v.lotto , Position( ' ' in v.lotto)-1 )) As scadenza_lotto , alternativa alla precedente oppure
Right( v.lotto , 6 ) As scadenza_lotto */ Max( v.va_note) As note ,
Max( flag_reazioni_avverse) As reaz_avv , Max( v.co_codifa) As Cod_Minsan
FROM (( pazienti p LEFT Outer JOIN nos_002 n ON p.codice = n.codice )
LEFT Outer JOIN v_utenti u On u.userid = n.pa_medi )
LEFT Outer JOIN cart_vaccini v ON v.codice = p.codice
WHERE u.nome ILike '%' AND u.codice_regionale ILike '%'
AND p.pa_convenzione = 'S' AND sesso ILike '%'
AND Days( p.nascita, '2016/01/01')*24/8766 < 105
AND v.va_tipo ILike '%Tetan%' AND v.va_data BETWEEN '2015-01-01' AND '2015-12-31' And Not Exists (Select v1.codice From cart_vaccini v1
Where v1.codice = v.codice And v1.va_tipo ILike '%Tetan%' And (v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid>v.rowid)))
GROUP BY u.codice_fiscale , p.codice_fiscale , p.cognome , p.nome , p.nascita , p.sesso , p.codice , v.lotto
ORDER BY 7 desc , 3 , 4
Ti saluto , Sergio Orzivecchi ( BS )
SELECT Distinct Cast( p.cognome As Char(20)) , p.nome , Cast( DateFormat( Max( p.nascita), 'yyyy/mm/dd' ) As Char(16)) , p.sesso ,
Days( p.nascita, '2015/01/01')*24/8766 As eta , Cast( p.codice_fiscale As Char(16)) As codfisc_paz ,
Cast( DateFormat( Max( v.va_data), 'yyyy/mm/dd' ) As Char(16)) As Influ_d , Max( v.va_tipo) As vaccino ,
( Select Max( v.va_scad) From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Tetan%' And v.va_data Is Null And Not Exists (Select v1.codice
From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Tetan%' And (v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid>v.rowid)))) As data_richiamo ,
Cast( Max( v.va_rich) As smallInt ) As tipo_richiamo , Max( v.va_code) As Vacc_code ,
Case Max( fatto_io) WHEN 'D' THEN ' in Office' WHEN 'E' THEN ' Domicilio' WHEN 'F' THEN ' in RSA'
WHEN 'A' THEN ' Priv in Office' WHEN 'B' THEN ' Priv Domicilio' WHEN 'C' THEN ' Priv in RSA' ELSE Max( fatto_io) END As sede ,
Trim( Left( v.lotto , Position( ' ' in v.lotto)-1 )) As num_lotto , Left( '20', 2) || SubString( v.lotto From Length( v.lotto )-5 For 2 ) || '-' || SubString( v.lotto From Length( v.lotto )-3 For 2 ) ||'-' || Right( lotto, 2 ) As scadenza_lotto ,
/* Trim( Right( v.lotto , Position( ' ' in v.lotto)-1 )) As scadenza_lotto , alternativa alla precedente oppure
Right( v.lotto , 6 ) As scadenza_lotto */ Max( v.va_note) As note ,
Max( flag_reazioni_avverse) As reaz_avv , Max( v.co_codifa) As Cod_Minsan
FROM (( pazienti p LEFT Outer JOIN nos_002 n ON p.codice = n.codice )
LEFT Outer JOIN v_utenti u On u.userid = n.pa_medi )
LEFT Outer JOIN cart_vaccini v ON v.codice = p.codice
WHERE u.nome ILike '%' AND u.codice_regionale ILike '%'
AND p.pa_convenzione = 'S' AND sesso ILike '%'
AND Days( p.nascita, '2016/01/01')*24/8766 < 105
AND v.va_tipo ILike '%Tetan%' AND v.va_data BETWEEN '2015-01-01' AND '2015-12-31' And Not Exists (Select v1.codice From cart_vaccini v1
Where v1.codice = v.codice And v1.va_tipo ILike '%Tetan%' And (v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid>v.rowid)))
GROUP BY u.codice_fiscale , p.codice_fiscale , p.cognome , p.nome , p.nascita , p.sesso , p.codice , v.lotto
ORDER BY 7 desc , 3 , 4
Ti saluto , Sergio Orzivecchi ( BS )
Cervino- Membro Junior
- Messaggi : 245
Punti : 5281
Voti per importanza dei messaggi : 22
Data d'iscrizione : 03.03.11
Età : 70
Località : Orzivecchi (BS)
Re: vaccinazioni tetano con lotto per postgres
Cervino ha scritto:Prova eventualmente con :
SELECT Distinct Cast( p.cognome As Char(20)) , p.nome , Cast( DateFormat( Max( p.nascita), 'yyyy/mm/dd' ) As Char(16)) , p.sesso ,
Days( p.nascita, '2015/01/01')*24/8766 As eta , Cast( p.codice_fiscale As Char(16)) As codfisc_paz ,
Cast( DateFormat( Max( v.va_data), 'yyyy/mm/dd' ) As Char(16)) As Influ_d , Max( v.va_tipo) As vaccino ,
( Select Max( v.va_scad) From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Tetan%' And v.va_data Is Null And Not Exists (Select v1.codice
From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Tetan%' And (v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid>v.rowid)))) As data_richiamo ,
Cast( Max( v.va_rich) As smallInt ) As tipo_richiamo , Max( v.va_code) As Vacc_code ,
Case Max( fatto_io) WHEN 'D' THEN ' in Office' WHEN 'E' THEN ' Domicilio' WHEN 'F' THEN ' in RSA'
WHEN 'A' THEN ' Priv in Office' WHEN 'B' THEN ' Priv Domicilio' WHEN 'C' THEN ' Priv in RSA' ELSE Max( fatto_io) END As sede ,
Trim( Left( v.lotto , Position( ' ' in v.lotto)-1 )) As num_lotto , Left( '20', 2) || SubString( v.lotto From Length( v.lotto )-5 For 2 ) || '-' || SubString( v.lotto From Length( v.lotto )-3 For 2 ) ||'-' || Right( lotto, 2 ) As scadenza_lotto ,
/* Trim( Right( v.lotto , Position( ' ' in v.lotto)-1 )) As scadenza_lotto , alternativa alla precedente oppure
Right( v.lotto , 6 ) As scadenza_lotto */ Max( v.va_note) As note ,
Max( flag_reazioni_avverse) As reaz_avv , Max( v.co_codifa) As Cod_Minsan
FROM (( pazienti p LEFT Outer JOIN nos_002 n ON p.codice = n.codice )
LEFT Outer JOIN v_utenti u On u.userid = n.pa_medi )
LEFT Outer JOIN cart_vaccini v ON v.codice = p.codice
WHERE u.nome ILike '%' AND u.codice_regionale ILike '%'
AND p.pa_convenzione = 'S' AND sesso ILike '%'
AND Days( p.nascita, '2016/01/01')*24/8766 < 105
AND v.va_tipo ILike '%Tetan%' AND v.va_data BETWEEN '2015-01-01' AND '2015-12-31' And Not Exists (Select v1.codice From cart_vaccini v1
Where v1.codice = v.codice And v1.va_tipo ILike '%Tetan%' And (v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid>v.rowid)))
GROUP BY u.codice_fiscale , p.codice_fiscale , p.cognome , p.nome , p.nascita , p.sesso , p.codice , v.lotto
ORDER BY 7 desc , 3 , 4
Ti saluto , Sergio Orzivecchi ( BS )
ok funziona bene, grazie.
avevo adattato una "visivamente" piu' semplice che posto dopo
SELECT
cart_vaccini.va_data as Data_Vaccinazione,
cart_vaccini.co_des as Tipo_Vaccino_Utilizzato,
cart_vaccini.lotto as Dati_Lotto,
cart_vaccini.ora as Codice_Categoria,
pazienti.cognome as Cognome,
pazienti.nome as Nome,
pazienti.nascita as Data_Nascita,
pazienti.sesso as Sesso,
pazienti.codice_fiscale as Codice_Fiscale,
cart_vaccini.va_note as Note,
v_utenti.codice_regionale as Codice_Regionale_Medico,
CONCAT (v_utenti.cognome, ' ' , v_utenti.nome) AS Nome_Medico_Utente
FROM
cart_vaccini,
pazienti,
nos_002,
v_utenti
WHERE
pazienti.codice = cart_vaccini.codice AND
pazienti.codice = nos_002.codice AND
pazienti.userid = v_utenti.userid AND
cart_vaccini.va_tipo LIKE '%tetan%' AND
/* SOSTITUIRE dopo LIKE il tipo di vaccinazione da cercare */
date( cart_vaccini.va_data) > '01/02/2015' AND
/* SOSTITUIRE LA DATA DELLA RIGA PRECEDENTE IN BASE ALLA DATA D'INIZIO DELLA ricerca delle vaccinazioni */
nos_002.pa_medi = 'QWHSUYM'
/* AL POSTO DELLE XXXXXXX NELLA RIGA PRECEDENTE INSERIRE TRA GLI APICI IL PROPRIO CODICE MEDICINA DI GRUPPO DI MILLEWIN */
ORDER BY cart_vaccini.co_des, pazienti.cognome, pazienti.nome, pazienti.nascita ;
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5389
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Argomenti simili
» vaccinazioni influenza con rifiuti
» esportazione vaccinazioni da report vaccinazioni Toscana
» vaccino Difterite Tetano Pertosse
» registrare vaccinazioni
» Vaccinazioni meningococco e altre
» esportazione vaccinazioni da report vaccinazioni Toscana
» vaccino Difterite Tetano Pertosse
» registrare vaccinazioni
» Vaccinazioni meningococco e altre
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.