Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с написанием запроса / 6 сообщений из 6, страница 1 из 1
13.12.2020, 20:35
    #40027502
Помогите с написанием запроса
Добрый день.

Ни как не могу победить! Ситуация следующая: Есть кабинеты, где оказывают услуги клиентам, одни услуги оказываются только в одних кабинетах, другие в других.

Пример:

Клиенту оказываю 3 услуги, первая услуга может быть оказана только в 1-м, во 2-м и в 3-м кабинете, вторая услуга может быть оказана только 1-м и в 3-м, а третья услуга оказывается только в 4-м кабинете, т.е.:

Услуга 1: кабинет 1 - 2 - 3
Услуга 2: кабинет 1 - 3
Услуга 3: кабинет 4

Задача: нужно вывести все возможные варианты оказания услуг по кабинетам, должно получиться так:

№ варианта Кабинет
1 1
1 4
2 3
2 4

т.е. могут быть только 2 варианта, при котором все три услуги будут оказаны в 1 визит клиента.
...
Рейтинг: 0 / 0
13.12.2020, 21:48
    #40027522
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием запроса
Непонятно вот ни хрена... особенно - по какой причине он не может получить услугу 1 в кабинете 2, потом услугу 2 в кабинете 3, и, наконец, услугу 3 в кабинете 4. Как и неясно, что есть "1 визит клиента".
...
Рейтинг: 0 / 0
13.12.2020, 22:37
    #40027523
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием запроса
Гусельников Игорь
Задача: нужно вывести все возможные варианты оказания услуг по кабинетам, должно получиться так:
Напишите запрос с группировкой по кабинетам, считайте количество услуг по кабинетам, и потом после группировки условие "количество = 3"
...
Рейтинг: 0 / 0
14.12.2020, 07:39
    #40027551
НеофитSQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием запроса
Гусельников Игорь,


Назовите услуги буквами, а кабинеты - цифрами, так будет меньше путаницы.

К вам приходит клиент типа ABC, т.е. он хочет три услуги в этом порядке.

А: кабинеты 1,2 или 3 (три варианта)
B: кабинеты 1,3
С: кабинет 4.

Этого клиента можно гонять по кабинетом шестью способами, 3*2*1.

А-В-С
1-1-4
1-3-4
2-1-4
2-3-4
3-1-4
3-3-4

Получить все эти комбинации можно джойнами по А,В,С.
Если клиенту эти услуги можно предоставить в любом порядке, число комбинаций умножится на N! где N - число услуг. Не все комбинации кабинетов будут уникальными.
...
Рейтинг: 0 / 0
14.12.2020, 08:31
    #40027553
Игорь_UUS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием запроса
НеофитSQL
Гусельников Игорь,


Назовите услуги буквами, а кабинеты - цифрами, так будет меньше путаницы.

К вам приходит клиент типа ABC, т.е. он хочет три услуги в этом порядке.

А: кабинеты 1,2 или 3 (три варианта)
B: кабинеты 1,3
С: кабинет 4.

Этого клиента можно гонять по кабинетом шестью способами, 3*2*1.

А-В-С
1-1-4
1-3-4
2-1-4
2-3-4
3-1-4
3-3-4

Получить все эти комбинации можно джойнами по А,В,С.
Если клиенту эти услуги можно предоставить в любом порядке, число комбинаций умножится на N! где N - число услуг. Не все комбинации кабинетов будут уникальными.



Добрый день.

Да, я не раскрыл вопрос полностью, уточняю: нужно отобразить варианты по принципу наименьшего участия кабинетов для оказания всех услуг:

если это одна услуга и по кабинетам: 1-2-3, то тут будет 3 варианта:
1 вар. - 1 каб.
2 вар. - 2 каб.
3 вар. - 3 каб.

если две услуги, по кабинетам: 1-2-3 и 1-3, то получаем 2 варианта
1 вар. - 1 каб.
2 вар. - 3 каб.

если 3 услуги, по кабинетам: 1-2-3, 1-3 и 4, будет 2 варианта, но у каждого варианта по 2 кабинета, в табличном виде:
1 вар. - 1 каб.
1 вар. - 4 каб.
2 вар. - 3 каб.
2 вар. - 4 каб.
...
Рейтинг: 0 / 0
14.12.2020, 11:51
    #40027576
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием запроса
Игорь_UUS
уточняю: нужно отобразить варианты по принципу наименьшего участия кабинетов для оказания всех услуг:
Тогда не "потом после группировки условие "количество = 3"", как я написал, а
после группировки сортировка по полю "количество"
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с написанием запроса / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]