Получите новейшую и самую старую дату из списка - Ruby

Необходимо будет сделать соединение:

SELECT A.SalesOrderID, B.Foo
FROM A
JOIN B bo ON bo.id = (
     SELECT TOP 1 id
     FROM B bi
     WHERE bi.SalesOrderID = a.SalesOrderID
     ORDER BY bi.whatever
     )
WHERE A.Date BETWEEN '2000-1-4' AND '2010-1-4'

, предполагая, что b.id PRIMARY KEY на B

В MS SQL 2005 и выше можно использовать этот синтаксис:

SELECT SalesOrderID, Foo
FROM (
  SELECT A.SalesOrderId, B.Foo,
         ROW_NUMBER() OVER (PARTITION BY B.SalesOrderId ORDER BY B.whatever) AS rn
  FROM A
  JOIN B ON B.SalesOrderID = A.SalesOrderID
  WHERE A.Date BETWEEN '2000-1-4' AND '2010-1-4'
) i
WHERE rn

Это выберет точно одну запись от B для каждого SalesOrderId.

9
задан Guillaume Jacquenot 27 November 2016 в 09:11
поделиться