Вопрос присоединения к SQL

Вот моя ситуация:

У меня есть одна таблица, в которой содержится список проданных лекарств с указанием НДЦ (идентификатора), проданного количества и того, является ли препарат торговой маркой или дженериком. У меня есть другая таблица, которая содержит номера рецептов, даты и НДЦ.

Мне нужно составить список 4 последних номеров рецептов для 50 лучших непатентованных лекарств и 50 лучших брендовых лекарств.

Упрощенный пример:

Drug_list:
NDC   QTY      Type
123   50       Generic
125   47       Brand
128   34       Generic
...
549   1        Brand
294   1        Generic

Claims_list:
NDC  RX_num  Date
123  1234    20081027
123  4194    20090517
594  12598   20091012

Как бы я написать объединение, чтобы создать список

NDC RX1, RX2, RX3, RX4

где НДЦ - 50 самых распространенныхМарка» NDC и следующие RX - это номера RX самых последних заявлений?

~~~~~~~

Пока яу нас есть это:

select t.ndc, cl.rx, cl.date from (
select * from (
select * from (
select * from drug_list where brand = 'Generic')
order by qty)
where rownum < 51) t
join claims_list cl on cl.ndc = t.ndc
order by t.ndc, cl.date;

Что дает мне часть пути там. Оттуда, как я могу обрезать его до 4 результатов на NDC? И возможно ли получить это в следующем:

NDC, RX1, RX2, RX3, RX4

Если я должен сообщить об этом как:

NDC1, RX1
NDC1, RX2
NDC1, RX3
NDC1, RX4
NDC2, RX1
NDC2, RX2
NDC2, RX3
NDC2, RX4
NDC3, RX1
... etc

но я бы предпочел иметь его на одной линии.

~~~~ (согласно запросу: создайте операторы таблиц для примеров таблиц):

create table drug_list
(NDC varchar2(15), QTY number, type varchar2(10));

create table claims_list
(NDC varchar2(15), RX_num varchar2(20), "date" date);

Ответы на вопрос(3)

Ваш ответ на вопрос