MSSQL – daj max value i pripadajuće kolone
Problem: u tablici imamo popis knjiga sa sljedećim podacima: book_id, book_year, book_name, books_sold, books_ordered.
Dakle, za svaku knjigu imamo za različite godine: isto ime i book_id ali različit broj naručenih i prodanih knjiga.
Zanima nas book_id, book_year, book_name, books_sold i books_ordered za zadnju godinu za svaku knjigu.
SELECT B.book_id, B.book_year, B.book_name, B.books_sold, B.books_ordered FROM tbl_books AS B INNER JOIN ( SELECT book_id, MAX(book_year) as max_year FROM tbl_books GROUP BY book_id ) as M ON B.book_id = M.book_id GROUP BY B.book_id, B.book_year, B.book_name, B.books_sold, B.books_ordered
Dakle, prvo uzimamo max year za svaku knjigu pomoću
SELECT book_id, MAX(book_year) as max_year FROM tbl_books GROUP BY book_id
a zatim popis knjiga joinamo sa dobivenim max vrijednostima.