2012-01-23 3 views
0

Мне нужно получить Лучшие 2 записи для Клиента и продукта. Таким образом, мои данные выглядит следующим образом ...Доступ Top N по группам

Customer ProdCode 
-------- -------- 
Cust1 PROD1 
Cust1 PROD1 
Cust1 PROD1 
Cust1 PROD1 
Cust1 PROD2 
Cust1 PROD2 
Cust1 PROD2 
Cust1 PROD2 
Cust1 PROD2 
Cust2 PROD1 
Cust2 PROD1 
Cust2 PROD1 
Cust2 PROD1 
Cust2 PROD1 

, но я хочу, чтобы это выглядело, как это ...

Customer ProdCode 
-------- -------- 
Cust1 PROD1 
Cust1 PROD1 
Cust1 PROD2 
Cust1 PROD2 
Cust2 PROD1 
Cust2 PROD1 

Я нашел несколько примеров Top N в группе, но не для два столбца.

+1

Возможный дубликат [выбор верхней N строк для каждой группы в таблице] (http://stackoverflow.com/questions/3998529/selecting-top-n-rows-for-each-group-in-a-table) – Joe

+0

Я рассматриваю это как похожее, но не дублирующее. Я пытаюсь сделать это с двумя полями из таблицы, а не с одним ... и с доступом к SQL. – user526549

+0

Этот вопрос аналогичен (и для Access): [сложный-ms-access-great-n-per-group-problem] (http://stackoverflow.com/questions/1803396/complicate-ms-access-greatest-n -per-group-problem) –

ответ

0

Вы не можете получить отображаемый результат по показанным данным. Доступ предоставляет совпадения для верхнего N, и ваши данные имеют несколько совпадений, поэтому они будут возвращены. Возможно получить желаемый результат с более реалистичными данными, так как существует несколько обходных решений, которые могут привести к точной отдаче.

+0

Не могли бы вы дать краткий пример того, что вы имеете в виду? – user526549

+0

У вас есть 4 'Cust1 PROD1', поэтому независимо от того, выбираете ли вы Top 1, Top 2 или Top n, 4 результата будут возвращены, потому что они совпадают. – Fionnuala

+0

Извините, я имею в виду возможное обходное решение ... – user526549

Смежные вопросы