2017-04-12 3 views
0

J'ai une table qui ressemble à ceci:Trouver l'horodatage d'un numéro de ticket unique

**ActivityNumber -- TimeStamp  -- PreviousActivityNumber -- Team** 
1234-4   -- 01/01/2017 14:12 -- 1234-3     -- Team A 

Il y a 400.000 lignes.
Le numéro ActivityNumber est un numéro de ticket unique avec le nombre d'activités joint. Il y a 4 équipes. Chaque numéro d'activité figure dans la table.

Je dois calculer le temps moyen entre les mises à jour pour chaque équipe, pour chaque mois (pour voir comment chaque équipe s'améliore avec le temps).

J'ai produit une requête qui compte le nombre d'activités par équipe par mois - donc je suis à mi-chemin.

Je n'arrive pas à trouver l'horodatage de previousActivityNumber pour que je puisse le soustraire du numéro d'activité en cours. Si je pouvais obtenir ceci, je pourrais courir une moyenne dessus.

+1

Pls entrée après échantillon/sortie et ce qui ont essayé u ... – Teja

Répondre

1

Conceptuellement:

select a1.Team, 
     a1.ActivityNumber, 
     a1.TimeStamp, 
     a2.Timestamp as PrevTime, 
     datediff('n',a1.Timestamp, a2.timestamp) as WorkMinutes 
from MyTable a1 
left join MyTable a2 
on ((a1.Team = a2.Team) 
and (a1.PreviousActivityNumber = a2.ActivityNumber) 
+0

Cette réponse est ce que vous recherchez. Plus précisément, le concept d'une auto-jointure. Cela apportera facilement votre empreinte temporelle précédente, et permettra également un calcul facile! – RexMaison

+1

Parfait. La jointure était ce qui me manquait. Tous triés maintenant. Vraiment apprécier l'aide. – ptrichardson