Ottenimento valori presenze istantanee

Apteco

Nuovo Utente
16 Apr 2020
5
1
3
Ciao,

ho provato a cercare in questa sezione ma non ho trovato nulla che corrisponda al mio caso...

Ho una tabella che contiene (tra gli altri) questi campi:
data_presenza
ora_ingresso
ora_uscita

Ora, io vorrei "consolidare" le righe di questa tabella andando ad ottenere quante presenze ho per varie fasce orarie, in pratica andare a fare una "foto" del numero di presenze ogni venti minuti.
Premessa: ingressi e uscita so

Il top sarebbe avere una tabella strutturata con i campi
Data
Presenze alle 7.00
Presenze alle 7.20
Presenze alle 7.40
...
Presenze alle 17.40
Presenze alle 18.00

e i vari valori relativi.

Per farlo pensavo di concatenare delle query del tipo "select data_presenza, count(*) where ora_ingresso < '7:00:00' and ora_uscita >= '7:00:00' etc, per ogni fascia oraria....
però poi dovrei creare una view per ognuna e fare una query che pesca da ognuna di queste view facendo un join sulla data_presenza....

C'è un modo più facile per ottenere questi dati?

Spero di essere stato abbastanza chiaro nella presentazione....

Grazie a chi saprà darmi una risposta
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
potresti usare una query composta (scusa se la definisco un po' schifezza), ma funziona,

SQL:
select data_presenza, '07:00:00' as ora_presenza, count(*) as conta_presenze from tabella where '07:00:00' between ora_ingresso and ora_uscita group by data_presenza
union
select data_presenza, '07:20:00' as ora_presenza, count(*) as conta_presenze from tabella where '07:20:00' between ora_ingresso and ora_uscita group by data_presenza
union
select data_presenza, '07:40:00' as ora_presenza, count(*) as conta_presenze from tabella where '07:40:00' between ora_ingresso and ora_uscita group by data_presenza
union
select data_presenza, '08:00:00' as ora_presenza, count(*) as conta_presenze from tabella where '08:00:00' between ora_ingresso and ora_uscita group by data_presenza
union
select data_presenza, '08:20:00' as ora_presenza, count(*) as conta_presenze from tabella where '08:20:00' between ora_ingresso and ora_uscita group by data_presenza
union
select data_presenza, '08:40:00' as ora_presenza, count(*) as conta_presenze from tabella where '08:40:00' between ora_ingresso and ora_uscita group by data_presenza
union
select data_presenza, '09:00:00' as ora_presenza, count(*) as conta_presenze from tabella where '09:00:00' between ora_ingresso and ora_uscita group by data_presenza
union
select data_presenza, '09:20:00' as ora_presenza, count(*) as conta_presenze from tabella where '09:20:00' between ora_ingresso and ora_uscita group by data_presenza
union
select data_presenza, '09:40:00' as ora_presenza, count(*) as conta_presenze from tabella where '09:40:00' between ora_ingresso and ora_uscita group by data_presenza

RISULTATO

1587069447321.png


volendo mettere un filtro sulla data, potresti scrivere
SQL:
select * from (

qui inserisci le righe soprastanti

) t
where t.data_presenza = ....
 

Apteco

Nuovo Utente
16 Apr 2020
5
1
3
Ciao Marino, grazie ;-)

In realtà quello che vorrei ottenere io è una cosa del tipo

Schermata 2020-04-16 alle 23.27.00.png


dove P_7_00 indica le presenze alle 7.00 etc.

vorrei capire se ci sia uno strumento o modo per ottenerlo nel modo più rapido possibile, senza l'uso di troppe query concatenate

Grazie ancora
 
  • Wow
Reactions: f107

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
1587073063311.png


Una persona dedica tempo per risponderti,
ma poi vanifichi il risultato di quel tempo,
proponendo una cosa totalmente diversa

inutile usare query, meglio scrivere del codice che risolve il problema magistralmente
 
  • Like
Reactions: f107

Apteco

Nuovo Utente
16 Apr 2020
5
1
3
In realtà ho cercato di spiegarmi meglio, poiché già nel primo messaggio scrivevo che i campi dovessero essere quelli (e non intendevo il contenuto delle varie righe).
Mi spiace di non essere stato altrettanto chiaro nel primo post, ma non ho mai inteso cambiare le carte in tavola.

La mia richiesta vorrebbe appunto evitare di usare codice esterno a mysql.

Grazie comunque per il tempo che mi hai dedicato ;-)
 

f107

Utente Attivo
7 Ago 2012
206
6
18
Roma
Ciao,

Quoto @marino51, con qualche linea di codice si risolveva molto facilmente, comunque provo a fare delle proposte che trovi qui: http://sqlfiddle.com/#!9/27459d/10

Ho immaginato la tabella presenze, mentre la tabella template l'ho usata per la prima proposta (che mi sembra la più dinamica e meno macchinosa).

Da come avevo compreso nel tuo primo post, la prima soluzione era più adatta (con le tabelle che hai descritto e l'ouput sembrava una soluzione verticale la tua richiesta).


Altrimenti, per rispondere agli sviluppi che ho letto, c'è la seconda opzione, ma perdonami sono uno sviluppatore, ergo sono profondamente pigro e annoiato dalle operazioni ripetitive, ho fatto uno script per creare le select clauses che servono in base all'orario minimo, il massimo e gli step necessari in minuti: https://repl.it/repls/SpicyPrevailingVertex se vuoi configurarlo cambia solo le variabili in maiuscolo e premi run. ( non non le avrai mai scritte a mano con copia e incolla tutte e tredici :eek:)

La seconda dovrebbe darti la soluzione che cerchi, ma non mi piace come soluzione (parere mio ovviamente), però puoi farci una view.
 

Apteco

Nuovo Utente
16 Apr 2020
5
1
3
Grazie mille a entrambi, provo a seguire questa via anche se non so se potrò utilizzare python....
Si tratta di un accesso esterno ad un server mysql e dovrei esporre quei dati sempre su una tabella per altri accessi da parte di terzi....
Provo a sistemare lo script python scrivendo i dati su una nuova tabella e utilizzandola come storico (non serve che siano dati live)...

Grazie mille
 

Apteco

Nuovo Utente
16 Apr 2020
5
1
3
Grazie mille a entrambi, provo a seguire questa via anche se non so se potrò utilizzare python....
Si tratta di un accesso esterno ad un server mysql e dovrei esporre quei dati sempre su una tabella per altri accessi da parte di terzi....
Provo a sistemare lo script python scrivendo i dati su una nuova tabella e utilizzandola come storico (non serve che siano dati live)...

Grazie mille

Rettifico, ho letto lo script.... grazie e basta.
 
  • Like
Reactions: f107
Discussioni simili
Autore Titolo Forum Risposte Data
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
G Invio di più valori con la stessa checkbox PHP 4
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
C prendere dei valori da Plugin e inserirli nel database joomla Joomla 0
F Stampare valori di un database PHP 14
T Recupero valori tramite $_GET PHP 4
otto9due Inserire o aggiornare tabella my sql controllando una coppia di valori PHP 7
M Problemi con la stampa dei valori in php PHP 1
M Passaggio Valori checbox in textarea Javascript 1
D passare valori da database sql a php PHP 1
O Recupero valori da listato Javascript 0
R Raggruppare valori array PHP 5
R Estrarre valori duplicati più volte PHP 0
T recupero valori select multipla da android Javascript 3
L estrarre valori max tra più tabelle MySQL 2
MarcoGrazia Valori di ritorno json via ajax non visti. jQuery 1
N VENDITA CORSO DROPSHIPPING LUCA VALORI Altri Annunci 0
S Come filtrare valori di un array PHP 4
L Estrazione valori max su più campi MySQL 4
G Controllare valori in 2 tabelle PHP 5
X [Select] Valori chiave non presenti in un'altra tabella MySQL 2
G MariaDB non restituisce dei valori PHP 7
M Estrarre valori MAX da un db con una left join MySQL 8
S Istruzione sql valori "simili" PHP 7
C [PHP] Estrarre da una classe i valori che mi interessano PHP 5
S [PHP] Confrontare due array con valori quasi uguali PHP 2
D [PHP] Tabella: modificare direttamente i valori PHP 6
MarcoGrazia [PHP] Unioni di due array con somma di valori PHP 6
B inserire valori da una tabella a un altra mysql PHP 34
M [PHP] Recuperare coppia con valori i valori MAX e coppia con valori MIN PHP 26
Tommy03 [PHP] Media valori presi da una query PHP 3
M Filtrare risultati con valori checkbox passati con jquery jQuery 2
psicomia Gestione funzione in javascript in tabella richiamare"textarea" valori preimpostati in "select" Javascript 2
G [ASP] Ciclare i valori di 2 array Classic ASP 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
R php Somma valori in file csv PHP 2
A sommare valori a video per lo stesso giorno jQuery 1
E [PHP] Istruzione condizionale con valori booleani PHP 16
S [Javascript] come estrarre valori array e inserirli in diverse variabili Javascript 1
C [PHP] Creare un Pulsante che ricopia valori di un campo in altro record PHP 4
elpirata [MySQL] Sostituire valori campi con dati casuali MySQL 4
K [PHP] Controllare dati database tra due valori PHP 18
alankanz [VBA] Valori Array in una cella Visual Basic 1
F INSERIRE IN UN'UNICA CASELLA DI TESTO REPORT ACCESS I VALORI DELLA TABELLA DI UN'INTERA COLONNA MS Access 2
A [PHP] Ciclare array multidimensionale e inserire valori in DB PHP 2
M Creare tabella da pagina php popolata con valori passati con POST PHP 5
T [PHP] Checkbox E Valori Multipli In Una Colonna PHP 1
G [PHP] FORM INVIO VALORI A QUERY CON TRE CONDIZIONI PHP 2
M Ottenere i valori di una proprietà su un array di oggetti (es. DIV) in JavaScript Javascript 7
N [VENDO] Articolo SEO "Ferritina alta: cause, prevenzione e valori ottimali" Offerte e Richieste di Lavoro e/o Collaborazione 0

Discussioni simili