Рекурсивная проблема SQL - PullRequest
       27

Рекурсивная проблема SQL

7 голосов
/ 18 декабря 2008

У меня есть проблема, которую я хотел бы решить с помощью SQL-запроса. Это собирается использоваться в качестве PoC (подтверждение концепции).

Проблема:

Товарные предложения состоят из одного или нескольких экземпляров продукта, продукта Экземпляр может принадлежать ко многим товарным предложениям. Это может быть реализовано следующим образом в таблице:

PO | PI

-----

A | 10

A | 11

A | 12

B | 10

B | 11

C | 13

Теперь я хотел бы получить предложение продукта из набора экземпляров продукта. Например. если мы отправим 10,11,13 ожидаемый результат обратно B & C, и если мы отправим только 10, тогда результат должен быть НЕДЕЙСТВИТЕЛЕН, так как никакое предложение продукта не составлено из только 10. Отправка в 10,11,12 приведет к A (не A & B, поскольку 12 само по себе не является действительным предложением продукта).

Необходимые условия: Комбинация отправленных экземпляров продукта может привести только к одному конкретному комбинация товарных предложений, поэтому для каждого запроса существует только одно решение.

Ответы [ 11 ]

0 голосов
/ 18 декабря 2008

ну, немного псевдокода с моей головы:

выберите из таблицы, где PI = 10 или pi = 11 и т. Д.

сохранить результат во временной таблице

выберите отдельный PO и количество (PI) из временной таблицы.

теперь для каждого ПО вы можете получить общее количество доступных предложений PI. Если количество доступных PI соответствует количеству во временной таблице, это означает, что у вас есть все PI для этого PO. добавьте все PO и вы получите свой набор результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...