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

accessi giorni particolari

Andare in basso

accessi giorni particolari

Messaggio  nanci giacinto il Mar 4 Ott 2016 - 23:21

SELECT cognome+' '+ nome Nome, datanasc as D_nascita,
(SELECT count(data_contatto) FROM v_contatti c WHERE c.codice=p.codice AND DAYNAME(data_contatto) ='Monday') Lunedi,
(SELECT count(data_contatto) FROM v_contatti c WHERE c.codice=p.codice AND DAYNAME(data_contatto) ='Tuesday') Martedi,
(SELECT count(data_contatto) FROM v_contatti c WHERE c.codice=p.codice AND DAYNAME(data_contatto) ='Wednesday') Mercoledi,
(SELECT count(data_contatto) FROM v_contatti c WHERE c.codice=p.codice AND DAYNAME(data_contatto) ='Thursday') Giovedi,
(SELECT count(data_contatto) FROM v_contatti c WHERE c.codice=p.codice AND DAYNAME(data_contatto) ='Friday') Venerdi,
(SELECT count(data_contatto) FROM v_contatti c WHERE c.codice=p.codice AND DAYNAME(data_contatto) ='Saturday') Sabato,
(SELECT count(data_contatto) FROM v_contatti c WHERE c.codice=p.codice AND DAYNAME(data_contatto) ='Sunday') Domenica,
(SELECT count(data_contatto) FROM v_contatti c WHERE c.codice=p.codice) TOTALE
FROM v_contatti p
UNION
Select ' __ TOTALE ACCESSI__' , CAST('' as date),
(SELECT COUNT (data_contatto) FROM v_contatti c WHERE DAYNAME(data_contatto) ='Monday') Lunedi,
(SELECT COUNT (data_contatto) FROM v_contatti c WHERE DAYNAME(data_contatto) ='Tuesday') Martedi,
(SELECT COUNT (data_contatto) FROM v_contatti c WHERE DAYNAME(data_contatto) ='Wednesday') Mercoledi,
(SELECT COUNT (data_contatto) FROM v_contatti c WHERE DAYNAME(data_contatto) ='Thursday') Giovedi,
(SELECT COUNT (data_contatto) FROM v_contatti c WHERE DAYNAME(data_contatto) ='Friday') Venerdi,
(SELECT COUNT (data_contatto) FROM v_contatti c WHERE DAYNAME(data_contatto) ='Saturday') Sabato,
(SELECT COUNT (data_contatto) FROM v_contatti c WHERE DAYNAME(data_contatto) ='Sunday') Domenica,
(SELECT COUNT (data_contatto) FROM v_contatti c) TOTALE
ORDER BY 1,2

BUONA SERA CHI MI SA DIRE PERCHE' QUESTA QUERY NON FUNZIONA IN POSTGRES? GRAZIE
avatar
nanci giacinto
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

Re: accessi giorni particolari

Messaggio  Cervino il Mer 5 Ott 2016 - 23:10

nanci giacinto ha scritto:SELECT cognome+' '+ nome Nome, datanasc as D_nascita,
(SELECT count(data_contatto) FROM v_contatti c WHERE c.codice=p.codice AND DAYNAME(data_contatto) ='Monday') Lunedi,
(SELECT count(data_contatto) FROM v_contatti c WHERE c.codice=p.codice AND DAYNAME(data_contatto) ='Tuesday') Martedi,
(SELECT count(data_contatto) FROM v_contatti c WHERE c.codice=p.codice AND DAYNAME(data_contatto) ='Wednesday') Mercoledi,
(SELECT count(data_contatto) FROM v_contatti c WHERE c.codice=p.codice AND DAYNAME(data_contatto) ='Thursday') Giovedi,
(SELECT count(data_contatto) FROM v_contatti c WHERE c.codice=p.codice AND DAYNAME(data_contatto) ='Friday') Venerdi,
(SELECT count(data_contatto) FROM v_contatti c WHERE c.codice=p.codice AND DAYNAME(data_contatto) ='Saturday') Sabato,
(SELECT count(data_contatto) FROM v_contatti c WHERE c.codice=p.codice AND DAYNAME(data_contatto) ='Sunday') Domenica,
(SELECT count(data_contatto) FROM v_contatti c WHERE c.codice=p.codice) TOTALE
FROM v_contatti p
UNION
Select ' __ TOTALE ACCESSI__' , CAST('' as date),
(SELECT COUNT (data_contatto) FROM v_contatti c WHERE DAYNAME(data_contatto) ='Monday') Lunedi,
(SELECT COUNT (data_contatto) FROM v_contatti c WHERE DAYNAME(data_contatto) ='Tuesday') Martedi,
(SELECT COUNT (data_contatto) FROM v_contatti c WHERE DAYNAME(data_contatto) ='Wednesday') Mercoledi,
(SELECT COUNT (data_contatto) FROM v_contatti c WHERE DAYNAME(data_contatto) ='Thursday') Giovedi,
(SELECT COUNT (data_contatto) FROM v_contatti c WHERE DAYNAME(data_contatto) ='Friday') Venerdi,
(SELECT COUNT (data_contatto) FROM v_contatti c WHERE DAYNAME(data_contatto) ='Saturday') Sabato,
(SELECT COUNT (data_contatto) FROM v_contatti c WHERE DAYNAME(data_contatto) ='Sunday') Domenica,
(SELECT COUNT (data_contatto) FROM v_contatti c) TOTALE
ORDER BY 1,2

BUONA SERA CHI MI SA DIRE PERCHE' QUESTA QUERY NON FUNZIONA IN POSTGRES? GRAZIE

Varie sono le criticità ,    nel  mio MU ( v 13.38.56 del 25-11-2011 ) sono riuscito a far eseguire la query :

SELECT  cognome || '  ' || nome  As  Nome ,  datanasc  As  nascita ,
( Select  Count( data_contatto) FROM v_contatti c WHERE c.codice = p.codice
And  DAY( data_contatto) = 1 )  As  Lunedi ,
( Select  Count( data_contatto) FROM v_contatti c WHERE c.codice = p.codice
And  DAY( data_contatto) = 2 )  As  Martedi ,
( Select  Count( data_contatto) FROM v_contatti c WHERE c.codice = p.codice
And  DAY( data_contatto) = 3 )  As  Mercoledi,
( Select  Count( data_contatto) FROM v_contatti c WHERE c.codice = p.codice
And  DAY( data_contatto) = 4 )  As  Giovedi,
( Select  Count( data_contatto) FROM v_contatti c WHERE c.codice = p.codice
And  DAY( data_contatto) = 5 )  As  Venerdi,
( Select  Count( data_contatto) FROM v_contatti c WHERE c.codice = p.codice
And  DAY( data_contatto) = 6 )  As  Sabato,
( Select  Count( data_contatto) FROM v_contatti c WHERE c.codice = p.codice
And  DAY( data_contatto) = 7 )  As  Domenica,
( Select  Count( data_contatto) FROM v_contatti c WHERE c.codice = p.codice)  As  Totale
FROM  v_pazienti  p
WHERE   ( Select  Count( data_contatto) FROM v_contatti c WHERE c.codice = p.codice)  >0
                        UNION
Select  ' Totale Accessi ' ,   Today() ,
( Select  Count( v.data_open)  From  cart_visite v  Where  DAY( v.data_open) = 1 )  As  Lunedi ,
( Select  Count( v.data_open)  From  cart_visite v  Where  DAY( v.data_open) = 2 )  As  Martedi ,
( Select  Count( v.data_open)  From  cart_visite v  Where  DAY( v.data_open) = 3 )  As  Mercoledi ,
( Select  Count( v.data_open)  From  cart_visite v  Where  DAY( v.data_open) = 4 )  As  Giovedi ,
( Select  Count( v.data_open)  From  cart_visite v  Where  DAY( v.data_open) = 5 )  As  Venerdi ,
( Select  Count( v.data_open)  From  cart_visite v  Where  DAY( v.data_open) = 6 )  As  Sabato ,
( Select  Count( v.data_open)  From  cart_visite v  Where  DAY( v.data_open) = 7 )  As  Domenica ,
( Select  Count (v.data_open)  From  cart_visite v)  As  Totale
ORDER BY  1 , 2



Resta da verificare se il set estratto sia affidabile  ( verifica non semplice da fare ) .

Saluti  Sergio ,  Orzivecchi  BS

Cervino
Membro Junior
Membro Junior

Messaggi : 222
Punti : 3082
Voti per importanza dei messaggi : 16
Data d'iscrizione : 03.03.11
Età : 64
Località : Orzivecchi (BS)

Visualizza il profilo

Torna in alto Andare in basso

accessi giorni particolari

Messaggio  nanci giacinto il Mer 5 Ott 2016 - 23:29

grazie per l'aiuto ma la estrazione della query (che funziona) mi da una quantità di accessi sabato e domenica di pari quantità degli altri giorni della settimana. Ti allego un'altra query che in postgres non funziona e che estrae gli accessi totali e non per singolo assistito per ogni giorno della settimana. 


Select cognome, nome,data_contatto as data, (CASE(DAYNAME(data_contatto))
WHEN 'Monday' THEN 'Lunedì'
WHEN 'Tuesday' THEN 'Martedì'
WHEN 'Wednesday' THEN 'Mercoledì'
WHEN 'Thursday' THEN 'Giovedì'
WHEN 'Friday' THEN 'Venerdì'
WHEN 'Saturday' THEN 'Sabato'
WHEN 'Sunday' THEN 'Domenica'
END) as giorno,
COUNT (tipo) totali
FROM V_contatti
GROUP BY data, cognome, nome
UNION 
select '','',cast(''as date) ,' TOTALI', COUNT (tipo) totali
FROM V_contatti
Order By 1,2,3
--Where tipo<>'accesso per valutazione'--

Purtroppo delle centinaia di query già pronte con l'introduzione di postgres non funzionano più credo che millenium non tenendo conto di tutto questo e non provvedendo ad assistere noi utenti in questo passaggio di sistema abbia compiuto un grave abuso. Credo inoltre che dovrebbe esserci una modalità di "correzione" delle query dal passaggio da sysbase a postgres credo che dovremmo organizarci tipo class action a chiedere a millenium questo servizio perchè buttare nel cestino centinania di query che sono costate ore e ore di lavoro non sia proprio giusto.
avatar
nanci giacinto
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

Re: accessi giorni particolari

Messaggio  Cervino il Mer 5 Ott 2016 - 23:50

nanci giacinto ha scritto:grazie per l'aiuto ma la estrazione della query (che funziona) mi da una quantità di accessi sabato e domenica di pari quantità degli altri giorni della settimana. Ti allego un'altra query che in postgres non funziona e che estrae gli accessi totali e non per singolo assistito per ogni giorno della settimana. 


Select cognome, nome,data_contatto as data, (CASE(DAYNAME(data_contatto))
WHEN 'Monday' THEN 'Lunedì'
WHEN 'Tuesday' THEN 'Martedì'
WHEN 'Wednesday' THEN 'Mercoledì'
WHEN 'Thursday' THEN 'Giovedì'
WHEN 'Friday' THEN 'Venerdì'
WHEN 'Saturday' THEN 'Sabato'
WHEN 'Sunday' THEN 'Domenica'
END) as giorno,
COUNT (tipo) totali
FROM V_contatti
GROUP BY data, cognome, nome
UNION 
select '','',cast(''as date) ,' TOTALI', COUNT (tipo) totali
FROM V_contatti
Order By 1,2,3
--Where tipo<>'accesso per valutazione'--

Purtroppo delle centinaia di query già pronte con l'introduzione di postgres non funzionano più credo che millenium non tenendo conto di tutto questo e non provvedendo ad assistere noi utenti in questo passaggio di sistema abbia compiuto un grave abuso. Credo inoltre che dovrebbe esserci una modalità di "correzione" delle query dal passaggio da sysbase a postgres credo che dovremmo organizarci tipo class action a chiedere a millenium questo servizio perchè buttare nel cestino centinania di query che sono costate ore e ore di lavoro non sia proprio giusto.
purtroppo mi da errore in :  UNION  e  poi   Function DAYNAME(date) does not exists ... 

Prova con ( la query è piu' omogenea ) :

SELECT  cognome || '  ' || nome  As  Nome ,  datanasc  As  nascita ,
( Select  Count( data_contatto) FROM v_contatti c WHERE c.codice = p.codice
And  DAY( data_contatto) = 1 )  As  Lunedi ,
( Select  Count( data_contatto) FROM v_contatti c WHERE c.codice = p.codice
And  DAY( data_contatto) = 2 )  As  Martedi ,
( Select  Count( data_contatto) FROM v_contatti c WHERE c.codice = p.codice
And  DAY( data_contatto) = 3 )  As  Mercoledi,
( Select  Count( data_contatto) FROM v_contatti c WHERE c.codice = p.codice
And  DAY( data_contatto) = 4 )  As  Giovedi,
( Select  Count( data_contatto) FROM v_contatti c WHERE c.codice = p.codice
And  DAY( data_contatto) = 5 )  As  Venerdi,
( Select  Count( data_contatto) FROM v_contatti c WHERE c.codice = p.codice
And  DAY( data_contatto) = 6 )  As  Sabato,
( Select  Count( data_contatto) FROM v_contatti c WHERE c.codice = p.codice
And  DAY( data_contatto) = 7 )  As  Domenica,
( Select  Count( data_contatto) FROM v_contatti c WHERE c.codice = p.codice)  As  Totale
FROM  v_pazienti  p
WHERE   ( Select  Count( data_contatto) FROM v_contatti c WHERE c.codice = p.codice)  >0
                        UNION
Select  ' Totale Accessi ' ,  Today() ,
( Select  Count( data_contatto)  From  v_contatti  Where  DAY( data_contatto) = 1 )  As  Lunedi ,
( Select  Count( data_contatto)  From  v_contatti  Where  DAY( data_contatto) = 2 )  As  Martedi ,
( Select  Count( data_contatto)  From  v_contatti  Where  DAY( data_contatto) = 3 )  As  Mercoledi ,
( Select  Count( data_contatto)  From  v_contatti  Where  DAY( data_contatto) = 4 )  As  Giovedi ,
( Select  Count( data_contatto)  From  v_contatti  Where  DAY( data_contatto) = 5 )  As  Venerdi ,
( Select  Count( data_contatto)  From  v_contatti  Where  DAY( data_contatto) = 6 )  As  Sabato ,
( Select  Count( data_contatto)  From  v_contatti  Where  DAY( data_contatto) = 7 )  As  Domenica ,
( Select  Count( data_contatto)  From  v_contatti )  As  Totale
ORDER BY  1 , 2


Purtroppo dopo l' ultimo aggiornamento di W10 , mi compare errore in PostgreSQL 9.0 : necessaria Reinstallazione ma probabilmente non è piu' supportato
( ed i risultati delle query non sono piu' affidabili ) .

Ti saluto ,  Sergio

PS : la quantità di accessi apparente errata puo' forse dipendere dalle impostazioni generali del SO ( verificare se : in Pannello di Controllo --> Regione --> Data --> Impostazioni aggiuntive ( traduco dall' inglese ) --> primo giorno della settimana --> lunedi , ovviamente

Cervino
Membro Junior
Membro Junior

Messaggi : 222
Punti : 3082
Voti per importanza dei messaggi : 16
Data d'iscrizione : 03.03.11
Età : 64
Località : Orzivecchi (BS)

Visualizza il profilo

Torna in alto Andare in basso

Re: accessi giorni particolari

Messaggio  Cervino il Gio 6 Ott 2016 - 8:18

Nelle query precedenti avevo utilizzata una funzione inadatta : 

SELECT  p.cognome || ' ' || p.nome  As  nome ,  p.datanasc  As  nascita ,
( Select Count( c.data_contatto) From v_contatti c Where c.codice = p.codice
And DoW( c.data_contatto) = 1 )  As Lunedi ,
( Select Count( c.data_contatto) From v_contatti c Where c.codice = p.codice
And DoW( c.data_contatto) = 2 )  As  Martedi ,
( Select Count( c.data_contatto) From v_contatti c Where c.codice = p.codice
And DoW( c.data_contatto) = 3 )  As  Mercoledi ,
( Select Count( c.data_contatto) From v_contatti c Where c.codice = p.codice
And DoW( c.data_contatto) = 4 )  As  Giovedi ,
( Select Count( c.data_contatto) From v_contatti c Where c.codice = p.codice
And DoW( c.data_contatto) = 5 )  As  Venerdi ,
( Select Count( c.data_contatto) From v_contatti c Where c.codice = p.codice
And DoW( c.data_contatto) = 6 )  As  Sabato ,
( Select Count( c.data_contatto) From v_contatti c Where c.codice = p.codice
And DoW( c.data_contatto) = 0 )  As  Domenica ,
( Select Count( c.data_contatto) FROM v_contatti c Where c.codice = p.codice)  As  Totale
FROM v_contatti p
                           UNION
Select ' Totale Accessi ' ,  Today() ,
( Select Count ( c.data_contatto) From v_contatti c Where DoW( c.data_contatto) = 1 )  As  Lunedi ,
( Select Count ( c.data_contatto) From v_contatti c Where DoW( c.data_contatto) = 2 )  As  Martedi ,
( Select Count ( c.data_contatto) From v_contatti c Where DoW( c.data_contatto) = 3 )  As  Mercoledi ,
( Select Count ( c.data_contatto) From v_contatti c Where DoW( c.data_contatto) = 4 )  As  Giovedi ,
( Select Count ( c.data_contatto) From v_contatti c Where DoW( c.data_contatto) = 5 )  As  Venerdi ,
( Select Count ( c.data_contatto) From v_contatti c Where DoW( c.data_contatto) = 6 )  As  Sabato ,
( Select Count ( c.data_contatto) From v_contatti c Where DoW( c.data_contatto) = 0 )  As  Domenica ,
( Select Count ( c.data_contatto) From v_contatti c)  As  Totale
ORDER BY  1 , 2


Funzionerà ? ,  saluti ,  Sergio

Cervino
Membro Junior
Membro Junior

Messaggi : 222
Punti : 3082
Voti per importanza dei messaggi : 16
Data d'iscrizione : 03.03.11
Età : 64
Località : Orzivecchi (BS)

Visualizza il profilo

Torna in alto Andare in basso

accessi giorni particolari

Messaggio  nanci giacinto il Gio 6 Ott 2016 - 17:38

buon pomeriggio perfetto funziona perfettamente
avatar
nanci giacinto
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

Re: accessi giorni particolari

Messaggio  Contenuto sponsorizzato


Contenuto sponsorizzato


Torna in alto Andare in basso

Torna in alto

- Argomenti simili

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