Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2005 Forums
 Transact-SQL (2005)
 leggere il record successivo

Author  Topic 

unozero
Starting Member

1 Post

Posted - 2010-09-03 : 12:20:15
ho provato un po pero chiedo a voi se c' è una soluzione per questo

ho una query in sql server dovrei creare un campo nuovo dove inserire un valore in base ad un campo del record successivo es.

id valore data
10 10 10/10/2010
10 10 20/10/2010
20 25 10/10/2010
30 12 20/10/2010
30 12 21/10/2010
30 12 23/10/2010

io vorrei creare un campo calcolato es pippo che legga il valre dell' id successivo e se diverso scriva il valore se uguale lo ponga uguale a 0 questo dovrebbe essere il risultato

id valore data pippo
10 10 10/10/2010 0
10 10 20/10/2010 10
20 25 10/10/2010 25
30 12 20/10/2010 0
30 12 21/10/2010 0
30 12 23/10/2010 12

io lavorando col crystal report pensavo ci fosse una funzione previous equivalente in sql ma probabilmente sono un po imbranato

grazie a chi vuole rispondermu

Ifor
Aged Yak Warrior

700 Posts

Posted - 2010-09-03 : 13:02:38
[code]
DECLARE @t TABLE
(
id int NOT NULL
,valore int NOT NULL
,data datetime
)
INSERT INTO @t
SELECT 10, 10, '20101010'
UNION ALL SELECT 10, 10, '20101020'
UNION ALL SELECT 20, 25, '20101010'
UNION ALL SELECT 30, 12, '20101020'
UNION ALL SELECT 30, 12, '20101021'
UNION ALL SELECT 30, 12, '20101023'

;WITH cte
AS
(
SELECT id, valore, data
,ROW_NUMBER() OVER (PARTITION BY id ORDER BY data DESC) AS RowNum
FROM @t
)
SELECT id, valore, data
,CASE WHEN RowNum = 1 THEN valore ELSE 0 END AS pippo
FROM cte
ORDER BY id, data
[/code]
Go to Top of Page
   

- Advertisement -