powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с написанием запроса
6 сообщений из 6, страница 1 из 1
Помогите с написанием запроса
    #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
Помогите с написанием запроса
    #40027522
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонятно вот ни хрена... особенно - по какой причине он не может получить услугу 1 в кабинете 2, потом услугу 2 в кабинете 3, и, наконец, услугу 3 в кабинете 4. Как и неясно, что есть "1 визит клиента".
...
Рейтинг: 0 / 0
Помогите с написанием запроса
    #40027523
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гусельников Игорь
Задача: нужно вывести все возможные варианты оказания услуг по кабинетам, должно получиться так:
Напишите запрос с группировкой по кабинетам, считайте количество услуг по кабинетам, и потом после группировки условие "количество = 3"
...
Рейтинг: 0 / 0
Помогите с написанием запроса
    #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
Помогите с написанием запроса
    #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
Помогите с написанием запроса
    #40027576
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_UUS
уточняю: нужно отобразить варианты по принципу наименьшего участия кабинетов для оказания всех услуг:
Тогда не "потом после группировки условие "количество = 3"", как я написал, а
после группировки сортировка по полю "количество"
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с написанием запроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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