Здесь T-SQL - не уверен, что вы используете, добавьте это как тег в свои вопросы для получения более качественных ответов. Написал это до редактирования OP, поэтому дважды проверьте col.
EDITED на комментарий X-нули
SELECT B.CUSTOMER,S.SKU,B.ORDERDATE,S.Amt
FROM TABLE_B B
INNER JOIN
( SELECT C.SKU,C.OFFERDATE,C.Amt,
ROW_NUMBER() OVER (PARTITION BY C.SKU ORDER BY C.OFFERDATE DESC) X
FROM TABLE_A C
)S ON S.X = 1 AND B.SKU = S.SKU
ORDER BY B.CUSTOMER
CREATE TABLE TABLE_A
(SKU varchar(8), OfferDate Date, Amt int)
INSERT INTO TABLE_A
VALUES('AAA', '2012-01-15', 22),
('AAA' ,'2012-02-23', 24),
('AAA' ,'2012-03-31', 25),
('AAA' ,'2012-05-20', 28),
('BBB','2011-01-15 00:00:00.000', 33),
('BBB','2011-02-23 00:00:00.000', 35),
('BBB','2011-03-31 00:00:00.000', 36),
('BBB','2011-05-20 00:00:00.000', 39),
('CCC', '2012-01-15', 43),
('CCC' ,'2012-02-23', 45),
('CCC' ,'2012-03-31', 47),
('CCC' ,'2012-04-18', 44)
CREATE TABLE TABLE_B
(CUSTOMER varchar(8),SKU varchar(8), OrderDate Date)
INSERT INTO TABLE_B
VALUES('A001','AAA','2012-02-01'),
('B001','AAA','2012-04-10'),
('C001','AAA','2012-05-31'),
('A001','BBB','2011-02-01'),
('B001','BBB','2011-04-10'),
('C001','BBB','2011-05-31'),
('B001','CCC','2011-04-10'),
('C001','CCC','2011-05-31')
Надлежащий [пример код] (http://sscce.org/) (здесь, заявление SQL) является более полезным, чем любой специальной схема и выборки формат данных или [таблица dump] (http://tkyte.blogspot.com/2005/06/how-to-ask-questions.html). Пожалуйста, используйте 'CREATE TABLE' и' INSERT ... VALUES' для образцов. Желаемые результаты не обязательно должны быть представлены в качестве примера кода, так как результаты - это результат кода, а не самого кода. – outis
Согласитесь с outis - я не понимаю, что вы пытаетесь сделать. – lxop
Возможный дубликат [Как я могу выбрать строки с MAX (значение столбца), DISTINCT другим столбцом в SQL?] (Http://stackoverflow.com/q/612231/), [SQL: выберите самую последнюю дату для каждой категории ] (http://stackoverflow.com/q/6680568/) – outis