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.
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 questoho 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 data10 10 10/10/201010 10 20/10/201020 25 10/10/201030 12 20/10/201030 12 21/10/201030 12 23/10/2010io 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 risultatoid valore data pippo 10 10 10/10/2010 0 10 10 20/10/2010 1020 25 10/10/2010 2530 12 20/10/2010 0 30 12 21/10/2010 0 30 12 23/10/2010 12io lavorando col crystal report pensavo ci fosse una funzione previous equivalente in sql ma probabilmente sono un po imbranatograzie 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 @tSELECT 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 cteAS( 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 cteORDER BY id, data[/code] |
 |
|
|
|
|
|
|