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.

 


Comments are closed.