ID    Datetime    Price 
1     25Jan       10
1     26Jan       11
2     23JAN       12
2     24JAN       13

Quiero el siguiente resultado

ID    Datetime    (Daytime-1)    (PRice for today)    (LastDayprice)
1     26 JAN      25 JAN         11                   10
2     24JAN       23 JAN         13                   12

¡Cualquier ayuda con respecto a SQL será apreciada!

-2
Awais Sheikh 28 ene. 2016 a las 11:36

2 respuestas

La mejor respuesta
SELECT t.ID,t.Datetime,s.datetime as yesterday,t.price,s.price as yest_price
FROM YourTable t
LEFT OUTER JOIN YourTable s
ON t.id = s.id and t.datetime = s.datetime+1

Esto debería servir.

0
sagi 28 ene. 2016 a las 08:42

Esto esta funcionando.

SQLFiddle Demo

SELECT prv.id, 
       cur.datetime, 
       prv.datetime AS "Daytime-1", 
       cur.price    AS "PRice for today", 
       prv.price    AS LastDayprice 
FROM   table1 prv 
       left join (SELECT id, 
                         datetime, 
                         price 
                  FROM   table1) cur 
              ON prv.id = cur.id 
                 AND prv.datetime = Date_sub(cur.datetime, interval 1 day) 
WHERE  cur.id IS NOT NULL 
0
Utsav 28 ene. 2016 a las 11:10