74 messaggi dal 10 ottobre 2004
Salve,
vorrei creare una query che mi ottenga il numero di ore trascorse tra due intervalli in una tabella così strutturata:

ID, Data, OraInizio, OraFine

Adesso io l'ho impostata in questo modo:

select Convert(varchar(30),OraUscita-OraIngresso,108) As Ore
from Timbratura
where ID=100


e funziona...il guaio è quando ho più righe riferite allo stesso giorno (cosa normalissima trattandosi di timbrature), perché ho varie righe riferite allo stesso giorno...

Come posso fare? Riesco a farlo tramite SQL?
823 messaggi dal 05 agosto 2002
Prova una cosa del genere:

select username, convert(varchar, ora_inizio, 105) giorno_competenza, sum(cast((ora_fine - ora_inizio) as float))*24 ore
from timbrature
group by
convert(varchar, ora_inizio, 105), username

Stick to your guns.
Formazione su MySQL o Firebird? Contattami!
74 messaggi dal 10 ottobre 2004
Ho provato, effettivamente adesso ho una riga per ogni giorno, ma nell'intervallo di ore mi escono cifre assurde.
Inoltre, i giorni in cui c'è stata una sola timbratura non vengono restituiti.

Questa è la query

select CodFiscCons, convert(varchar, oraIngresso, 105) As giorno_competenza, sum(Convert(float,OraUscita-OraIngresso,108))*24
from timbratura 
where CodFiscCons='XXXXXXXXXXYY'
group by 
convert(varchar, oraIngresso, 105), CodFiscCons


e questo quello che mi restituisce

CodFiscCons     giorno_competenza      (null)
---------------------------------------------
XXXXXXXXXXYY     14-03-2005            -922194.67258240748
XXXXXXXXXXYY     15-03-2005            -922241.00166666659
74 messaggi dal 10 ottobre 2004
select convert(varchar(30), Data, 105) As Data, sum(DATEDIFF(day,OraUscita, OraIngresso))
from Timbratura
where CodFiscCons='XXXXXYYYYYX'
group by Data


Visto che a me serve la somma per un consulente alla volta, questa stored mi andrebbe bene, solo se, però, mi eseguisse in maniera decente la somma....infatti mi restituisce numeri interi!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.