This is surprisingly hard because it involves an attempt to cross-reference records from a table. As any avid reader of this forum knows, that cannot happen because there is no such thing as "the next record" in a query.
Having said that, there is a way to do this that does not involve that much work.
Write a query that does a GROUP BY of your serial number. You have enough data to do this because you have down time and up time in each incident record. So...
For this query, compute the down-time for each entry as uptime-downtime for that incident record. BUT include the uptime and downtime in the query too.
Next, you need a DCount of records for that S/N, a DMAX of the return-to-service time, a DMIN of the went-out-of-service time, and a DSum of the computed down time - all for the records grouped by serial number.
MTBF then equals ( ( DMAX(return-to-service time) - DMin(out-of-service time) ) - DSum(down time) / DCount - 1
Alternatively, instead of using DMax(return-to-service time), use NOW() and use DCount of down events. BUT you might have to do this as a two-parter by filtering out any records having an out-of-service time but no entry for return-to-service.
Since you have that DSum and the DCount, you can also compute MTTR (Mean Time to Repair.)
Here's the logic. MTTR = sum of individual down times / number of down times
and that is computable with the data you have on hand.
MTBF = sum of individual up time / number of up times
You know the time of the first record in your list. That gives you the device's first down time. You know the time it was last returned to service. This interval is the total recorded time that you "know" about this device. The amount of up time is just the difference between the first time you know and the last time you MINUS the accumulated down time. The number of up times depends on an issue not yet described here, but basically, if the item is up now, it has as many up time intervals as it had down-time intervals, or if you don't want to say "NOW" then it has one less up time than the number of down times.
Now, if you happened to know when the item first went into service, your MTBF and MTTR can be computed using this same logic and at worst a UNION query.
Number of up times would then be (number of down-events + 1) if it is up right now or (number of down-events) if it is down right now. Elapsed time is still the difference between the earliest and latest times you "knew" the device. And UP time is just the difference between the "known" time and the accumulated down time.
Hope you followed that.