webForumDet fria alternativet

Jämföra mot föregående

Databaser & SQL

3 svar · 228 visningar · startad av Lasp

Medlem sedan juli 200012 978 inlägg
Frågan#1

Jag har ett antal bilar som har rullat ut och kommit in.
Jag vill ta fram dels vad dom har körts (enkelt)
dels vad som skiljer föregående In mot nästa Ut.

Bil Ut In Kört Diff
A1 15 23 8 15
A1 25 34 9 2
A1 50 70 20 16
B4 24 26 2 24
B4 26 36 10 0

Det finns även datum med i samma tabell om det kan hjälp

Medlem sedan dec. 20003 887 inlägg
#2

Går det att göra sådana postspecifika operationer i SQL? Det känns som om det måste till programmering för detta, men eftersom jag samtidigt har pytteliten koll på SPs, så kanske det inte alls är omöjligt.

red. Läste just Brimbas fråga och ser att det kanske finns en liknande lösning för dig. Dock har jag inte en susning om hur den skulle se ut. :l

Medlem sedan dec. 19995 874 inlägg
#3

Humm... vem vet?

select t1.ut, t1.in, (t1.in-t1.ut) diff, isnull((select top 1 ut from kort t2 where t2.bil=t1.bil and < t1.id),0)-t1.in from kort t1 order by t1.bil

t1.id måste du implementera och det skall vara en nummerisk räknare 1-n

Medlem sedan juli 200012 978 inlägg
#4

Tack Brimba. Det fungerade
Vi la till lite fält men vill ändå visa att det fungerar att jämföra direkt i SQL satsen:
select t1.oid,t1.Contrid,t1.frm_time,t1.km_out, t1.km_in, (t1.km_in-t1.km_out) diff, isnull((select top 1 t2.km_out-t1.km_in from contr_objt t2 where t2.oid=t1.oid and t2.km_out>=t1.km_in and t2.status=2 order by oid,km_out),0) as fel from contr_objt t1 where t1.status=2 and isnull((select top 1 t2.km_out-t1.km_in from contr_objt t2 where t2.oid=t1.oid and t2.km_out>=t1.km_in and t2.status=2 order by oid,km_out),0)>9 order by 1,3

Här plockar vi alltså ut alla bilar som "läcker" mer än 9 km.

251 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)