Ciao a tutti, avrei bisogno di aiuto con una query, trattandosi di puro Sql ho deciso di postare qua, tra l'altro sono già state affrontate altre query in questa sezione.
Allora devo fare una query particolare e mi sto perdendo da circa due giorni, spiego il tutto con un esempio.
Nome Tabella: Impiegati
Campi: Nome, Presenza, Orario
Allora mettiamo caso che la tabella sia già compilata così:
Giovanni - 14:00 - 0 [0=entra in ufficio]
Giovanni - 14:30 - 1 [1=sta lavorando]
Giovanni - 14:45 - 2 [2= va a fare un giro]
Giovanni - 14:50 - 3 [3=sta lavorando]
Giovanni - 15:00 - 5 [5=chiude tutto e va a casa]
Da questo esempio Giovanni è stato 1 ora fuori casa, però in ufficio ha lavorato solo 55 minuti perchè i 5 minuti con Presenza = 2 non era in ufficio.
Il mio problema sorge qui, io riesco tranquillamente a calcolare i tempi impiegati nelle operazioni, il tempo tra entrata e uscita eccetera.
Quindi riesco a ricavare il tempo che passa tra Presenza = 5 e Presenza = 0 però non so come fare per far calcolare il tempo tra Presenza=2 (va in giro) e lo stato successivo in modo da non calcolare questo tempo
Quindi:
Calcolo tempo tra stato= 0 e stato = 5 e ci tolgo il tempo che passa da quando imposto lo stato 4 a quando lo tolgo.
Il codice usato per ora per il calcolo del tempo totale era questo:
Grazie a tutti per eventuali consigli. Se qualcosa non è chiaro chiedete purecodice:Select Sec_to_time(unix_timestamp(max(data))-unix_timestamp(min(data))) from nome_tabella where nomecampo="valore"![]()