Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-05-2007, 11:13   #1
*nicola*
Senior Member
 
L'Avatar di *nicola*
 
Iscritto dal: Jun 2005
Messaggi: 408
[SQL] Calcolo durata tre due valori

Ho una tabella in cui è registrato (in formato datetime) l'ora di inizio e di fine lavoro dei dipendenti ma vorrei creare una query che mi calcoli la durata di ogni turno del dipendente e magari un'altra che me li somma tutti in base alla matricola del lavoratore.

Ho provato con
Codice:
SELECT DIFFERENCE(DataOraFine, DataOraFine) AS OreLav, Personale.IDPersonale
FROM Orario, Personale
ma mi da come risultato 4 ore di lavoro per tutti i dipendenti (sia che abbiano lavorato o meno quel giorno) quindi c'è qualcosa che non va.
Volendo posso cambiare il formato dell'orario di inizio e di fine se serve basta che sia presente sia la data sia l'ora.

Grazie
*nicola* è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2007, 11:35   #2
0rph3n
Senior Member
 
L'Avatar di 0rph3n
 
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
ma ti sei guardato perlomeno da documentazione di difference?
usa datediff('hh', DataOraInizio, DataOraFine)

'iao
0rph3n è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2007, 12:11   #3
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Se invece nn hai provveduto a creare due campi per gli orari, intendo:

OraInizio e OraFine ma hai solo un tipo di campo orario, puoi fare anche così:

Codice:
SELECT DATEDIFF(MAX(orario), MIN(orario)) as totale blablabla
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2007, 12:48   #4
*nicola*
Senior Member
 
L'Avatar di *nicola*
 
Iscritto dal: Jun 2005
Messaggi: 408
Ho risolto con datediff grazie. Sulle slide del prof non c'era e mi sembrava carino mettere anche qualcosa di nuovo per il progetto da portare all'esame.

Ho un altro dubbio: Devo portare uno script per il popolamento delle tabelle, anzichè ripetere ad ogni riga INSERT VALUES, quando inserisco dati nella stessa tabella (secondo la stessa struttura e lo stesso ordine) posso usare una sola istruzione e poi mettere tutti i dati da inserire?

Faccio un esempio:
Anzichè scrivere
Codice:
INSERT INTO Orario
VALUES('CarrerA', '05-07-2007 14:00', '05-07-2007 17:00')
INSERT INTO Orario
VALUES('CarnielliA', '05-07-2007 14:00', '05-07-2007 17:00')
INSERT INTO Orario
VALUES('CominA', '05-07-2007 14:00', '05-07-2007 17:00')
Posso fare solamente un elenco dei valori da inserire e scrivere una volta sola INSERT?
*nicola* è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2007, 14:09   #5
0rph3n
Senior Member
 
L'Avatar di 0rph3n
 
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
Quote:
Originariamente inviato da *nicola* Guarda i messaggi
Posso fare solamente un elenco dei valori da inserire e scrivere una volta sola INSERT?
in base alla mia misera esperienza, su mysql non ci sono problemi, mentre in sql server 2000 non se puede!
sorry, non ti saprei rispondere circa altri dbms.
0rph3n è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 07:26.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v