Kan man räkna ut ett differensen direkt i en sqlfråga?
Har Namn, antal, värde, datum
Nu vill jag jämföra förändringen mellan ett fastställt datum och det senast noterade värdet.
Hittils får jag ut
Namn1 | 100 | 12 | 2005-06-01 -> det fastställda
Namn1 | 100 | 16 | 2005-10-21 -> Det senaste
Dvs skillnaden är ju 4 upp gånger 100 = 400
Hade jag bara fått fram en sån enkel träff så hade det inte varit ngt problem, men nu är det så att det kan finnas fler noterigar samma dag och alla de ska jämföras med det senaste. De är fortfarande unika med det kan se ut så här:
Namn1 | 100 | 12 | 2005-06-01 -> det fastställda
Namn2 | 100 | 13 | 2005-06-01 -> det fastställda
Namn3 | 100 | 14 | 2005-06-01 -> det fastställda
Namn4 | 100 | 15 | 2005-06-01 -> det fastställda
Namn1 | 100 | 16 | 2005-10-21 -> Det senaste
Namn2 | 100 | 16 | 2005-10-21 -> Det senaste
Namn3 | 100 | 16 | 2005-10-21 -> Det senaste
Namn4 | 100 | 16 | 2005-10-21 -> Det senaste
Kör med SQL server
Hoppas ngn kan hjälp mig.
tack på förhand.
BrimbaMedlem sedan dec. 19995 875 inlägg Kan du förklara lite mer?
Dvs skillnaden är ju 4 upp gånger 100 = 400
Menar du skillnaden i antalet månader?
Du kan även skapa beräkande kolumner, vars värde baseras på en eller flera värden (kan även vara värdet i andra kolumner)
De kolumner jag har är
Namn, antal, värde, datum
och jag vill kunna jämföra skillnaden mellan antalet*värdet Datum 1 och Namn1
med antalet*värdet Datum2 och Namn1
Dvs
Namn1 | 100 | 12 | 2005-06-01 -> det fastställda
100*12 = 1200
Namn1 | 100 | 16 | 2005-10-21 -> Det senaste
100*16 = 1600
Så jag vill ha differensen mellan noteringen vid 2005-06-01 mot 2005-10-21
Hoppas det blev tydligare =)
BrimbaMedlem sedan dec. 19995 875 inlägg Något sånt här du menar?
declare @table table(namn varchar(50), antal int, varde int, datum datetime)
insert into @table values ('namn1', 100, 12, '2005-06-01')
insert into @table values ('namn2', 100, 13, '2005-06-01')
insert into @table values ('namn3', 100, 14, '2005-06-01')
insert into @table values ('namn4', 100, 15, '2005-06-01')
insert into @table values ('namn1', 100, 16, '2005-10-21')
insert into @table values ('namn2', 100, 16, '2005-10-21')
insert into @table values ('namn3', 100, 16, '2005-10-21')
insert into @table values ('namn4', 100, 16, '2005-10-21')
select t1.namn, t1.antal, t1.varde, t1.datum, (select top 1 abs((t1.antal*t1.varde)-(t2.antal*t2.varde)) from @table t2 where t1.namn = t2.namn order by datum desc) utr from @table t1