Zważywszy uporządkowanej tabeli z 11 kolumn:
timespan, val1, val2, val3, val4, val5, val6, val7, val8, val9 and val10
Jak odzyskać "ostatnie" niezerowe wartości z wielu kolumn?
Załóżmy zbiór rekordów, takich jak:
timespan val1 val2 val3 val4 val5 val6 val7 val8 val9 val10
10/09/2011 0 0 60 80 40 0 0 40 80 0
10/10/2011 0 10 90 30 70 50 50 70 30 90
10/11/2011 10 0 20 0 0 60 60 0 0 20
Potrzebuję zapytanie SQL (SQL Server 2012), która zwraca ostatni (w czasie) niezerowej wartości dla wszystkich kolumn, val1, wart2, ..., czyli
val1 val2 val3 val4 val5 val6 val7 val8 val9 val10
10 10 20 30 70 60 60 70 30 20
podobne pytanie można znaleźć na Subquery: how to retrieve the last non-zero value from a column? ale to działa tylko dla jednej kolumny i uogólnienie, aby dodać więcej kolumn (jak w tym przypadku) wydaje się niepraktyczne.
Dobre rozwiązanie, które działa pre-2012 – scsimon
@scsimon Dzięki, czysty głupie szczęście, że obsługuje pre-2012. Szczerze mówiąc, nigdy o tym nie myślałem. :) –