2017-08-04 9 views
0

J'ai le code qui fournit le numéro de commande, l'heure estimée de livraison, l'heure réelle de livraison et la différence entre les deux fois.SQL calculer le décalage horaire avec la ligne précédente

Si la commande est en retard, je dois prendre cette différence et l'ajouter à la prochaine commande pour afficher la nouvelle heure estimée de livraison.

Comment faire en sorte que SQL revienne à la ligne précédente et que la différence calculée soit ajoutée à l'heure de livraison estimée? Le LAG n'est pas disponible car nous utilisons 2012 SQL Shell.

+1

-vous des données est possible de communiquer et le code? –

Répondre

0

Cela obtient le datediff de datetime courant précédent record de

WITH orders AS 
(SELECT *, ROW_NUMBER() OVER (ORDER BY datetimecolumn) AS rownum 
    FROM mytable 
) 

SELECT DATEDIFF(second, curr.est_tod, prev.act_tod) 
    FROM orders curr 
INNER JOIN orders prev 
    ON curr.rownum = prev.rownum - 1 
+0

Je reçois un message d'erreur sur – user974061

+0

Sur mc.rownum = mp.rownum - 1 – user974061

+0

l'identificateur en plusieurs parties n'a pas pu être lié – user974061