Select Top 1 From a Table For Each Id in another Table

Структура таблицы:

create table fruit (
  id int identity(1,1),
  name varchar(max)
)

create table fruit_allocation (
  id int identity(1,1),
  fruit_id int references fruit(id),
  customer_id int references store(id),
  amount float,
)

create table measurement (
  fruit_allocation_id int references fruit_allocation(id),
  measurement_date datetime,
  measurement float,
)

Каждый фрукт может быть выделен более чем одному покупателю, создавая fruit_allocation Каждая запись fruit_allocation может иметь несколько измерений.

Я хочу выбрать последнее измерение для каждого fruit_allocation с учетом идентификатора фрукта

Пока у меня есть следующее:

select * 
  from measurement 
 where fruit_allocation_id in (select id 
                                 from fruit_allocation 
                                where fruit_id = 10)

Это возвращает все измерения для этого фрукта, я хочу чтобы просто вернуть одно измерение для каждого fruit_allocation.

6
задан OMG Ponies 22 February 2011 в 19:06
поделиться