Ho una tabella con le seguenti colonne.Richiesta di query SQL Server, Newbie
id,
compid(used to identify a piece of equipment),
startalarmdate,
endalarmdate
quando un pezzo di apparecchiatura va in allarme, inserisco il compid e startalarmdate (con l'ora corrente) nella tabella e quando l'apparecchiatura esce allarme compilo nel nulla nella stessa riga della colonna endalarmdate con l'ora corrente.
così finisco con qualcosa di simile nella tabella
417,6,Sun Oct 30 18:48:17 CDT 2011,Mon Oct 31 09:49:21 CDT 2011
422,6,Mon Oct 31 10:19:19 CDT 2011,Mon Oct 31 12:19:22 CDT 2011
427,6,Mon Oct 31 20:19:56 CDT 2011,Tue Nov 01 09:50:59 CDT 2011
429,6,Tue Nov 01 21:51:41 CDT 2011,Wed Nov 02 09:52:37 CDT 2011
432,6,Wed Nov 02 21:23:23 CDT 2011,Fri Nov 04 16:26:29 CDT 2011
sono stato in grado di costruire una query che mi dà un tempo di inattività totale di ore per ogni evento, ma quello che vorrei fare ora è costruire una query che mi dà un totale di ore in downtime per ogni giorno di un mese. Mi piacerebbe avere il compid tutto a sinistra, quindi avere ogni giorno del mese a destra del compid in una colonna sulla stessa riga. Id come i giorni senza tempi di inattività per essere nulli. È possibile farlo con il modo in cui questa tabella è impostata?
Domanda: per un giorno dare, immagino che sia la data di inizio che conta anche se la risoluzione è dopo la mezzanotte, giusto? – fge
È certamente possibile. Che cosa hai provato? Si dovrebbe guardare la documentazione di DATEDIFF per iniziare. Inoltre, dovrai decidere cosa fare del tempo di inattività che attraversa da un giorno all'altro. Ciò rende le cose più complicate, ma è certamente fattibile. – paulbailey