Получить разное количество строк для каждой категории из таблицы SQL Server

Мне нужно создать список адресов, на которые мой клиент собирается отправлять каталоги товаров . Они хотят отправить определенное количество каталогов (X) с определенным почтовым индексом (Y) [Это связано со средним доходом по этим почтовым индексам]

У меня есть две таблицы в SQL Server 2008 R2: CatalogRequests и AddressList

CatalogRequests - это список того, сколько каталогов мы должны отправить на каждый почтовый индекс в нашей базе данных клиентов:

|  Zip  |  QuantityRequested  |
-------------------------------
| 12345 |         150         |
| 13445 |         800         |
| 45678 |         200         |
| 41871 |         350         |
| 77777 |         125         |

AddressList - это просто список адресов = )

|  Name  |     Address1    |  Address2  |      City     |  State  |  Zip  |
---------------------------------------------------------------------------
|  Bruce | 1 BatCave Dr    |            |  Gotham City  |   IL    | 12345 |
|  Clark | 9 Smallville St |   Apt A    |  Metropolis   |   NY    | 45678 |
|  Thor  | 5 Valhalla Way  |            |    Asgard     |   ??    | 77777 |

Я немного ломал голову, пытаясь сделать это с помощью SQL-запроса, затем сдался и написал небольшую программу на C #, чтобы делать то, что мне нужно было (в основном, генерировать кучу SQL-запросов - по одному для каждого запись в CatalogRequests ).

Мой вопрос: как я мог сделать это с помощью одного SQL-запроса? Мне просто любопытно, кажется, что есть способ сделать это, и я просто что-то упускаю. Или это может быть невозможно, и я сумасшедший =)

Результатом будут записи из AddressList , которые соответствуют требованиям в CatalogRequest (например, 150 записей с zip код 12345, 800 записей с почтовым индексом 13445 и т. д.).

7
задан marc_s 11 August 2011 в 18:18
поделиться