ho una tabella con la seguente strutturaGet differenza di tempo tra gruppo di record
ID ActivityTime Status
19 2013-08-23 14:52 1
19 2013-08-23 14:50 1
19 2013-08-23 14:45 2
19 2013-08-23 14:35 2
19 2013-08-23 14:32 1
19 2013-08-23 14:30 1
19 2013-08-23 14:25 2
19 2013-08-23 14:22 2
53 2013-08-23 14:59 1
53 2013-08-23 14:56 1
53 2013-08-23 14:57 1
53 2013-08-23 14:52 2
53 2013-08-23 14:50 2
53 2013-08-23 14:49 2
53 2013-08-23 14:18 2
53 2013-08-23 14:30 1
voglio calcolare la differenza di tempo totale per ogni ID contro Stato 2. Ad esempio ID 19 stati su Status 2 da 14 : Dalle 35 alle 14:50 (15 minuti), quindi dalle 14:22 alle 14:30 (8 minuti). Quindi l'ID totale 19 rimasto sullo Status 2 è di 23 minuti. (In entrambi i casi ho considerato il tempo minimo per lo stato 2 allo stato 1) Il problema è come posso includere unica differenza tra Stato dove sono diversi nel riga successiva.
Ad esempio escluderei il primo record nella tabella con lo stato 1 e selezionerei la seconda riga. Lo stesso vale per lo stato 2. Prenderò il tempo minimo, calcolerò la differenza e quindi li aggiungerò per più gruppi di stato rispetto a ciascun canale.
Ho provato a utilizzare CURSOR ma non riesco a farlo funzionare. Sono anche abbastanza fiducioso di poterlo realizzare in C# dopo aver ottenuto tutti i dati e poi averlo ripetuto. Ma mi chiedo solo se esiste un modo diretto per ottenere le informazioni senza un ciclo. Ho anche creato un SQL fiddle con dati, ma non riesco a farlo funzionare. Vengo dallo sfondo C# con le conoscenze di base di SQL. Sarei felice se qualcuno mi può aiutare.
'14:35 A 14:50 (5 minuti)'? 5 minuti o 15 minuti? Dovresti rivedere la regola nella tua domanda e assicurarti che sia ciò che desideri perché è molto importante che le risposte siano in grado di aiutarti. –
Non capisco cosa vuoi fare ... potresti forse elaborare un po 'di più? – Botis
@KingKing, è stato un errore di battitura, grazie per averlo indicato. – user2711965