powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Получить все записи у которых есть две услуги
6 сообщений из 6, страница 1 из 1
Получить все записи у которых есть две услуги
    #39974285
kolhoz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте. Есть таблица tmp с полями fio, usluga, type. В поле usluga могут быть значения Сборка ПК со скидкой, Сборка ПК, Ремонт ПК, Ремонт ПК со скидкой.

В поле type значение 1 для вариантов Сборка ПК со скидкой, Сборка ПК и значение 2 для вариантов Ремонт ПК, Ремонт ПК со скидкой.

Как получить записи только тех пациентов, у которых в поле type и 1 и 2? Т.е. только тех пациентов, которым делали ремонт ПК и сборку ПК.
...
Рейтинг: 0 / 0
Получить все записи у которых есть две услуги
    #39974290
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
having count(distinct type) = 2
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Получить все записи у которых есть две услуги
    #39974291
kolhoz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, А как будет выглядеть весь запрос?
...
Рейтинг: 0 / 0
Получить все записи у которых есть две услуги
    #39974422
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolhoz


Как получить записи только тех пациентов, у которых в поле type и 1 и 2? Т.е. только тех пациентов, которым делали ремонт ПК и сборку ПК.


у Вас "тоесть" не соответствует " у которых в поле type и 1 и 2"

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
SQL> ed
Wrote file afiedt.buf

  1  with tmp( fio, usluga,type) as (
  2  select 'kolhoz','Сборка ПК со скидкой',1 from dual union all
  3  select 'kolhoz','Сборка ПК',1 from dual union all
  4  select 'kolhoz','Ремонт ПК со скидкой',2 from dual union all
  5  select 'kolhoz','Ремонт ПК',2 from dual union all
  6  --
  7  select 'Stax','Сборка ПК со скидкой',1 from dual union all
  8  select 'Stax','Ремонт ПК со скидкой',2 from dual union all
  9  select 'Stax','Ремонт ПК',2 from dual union all
 10  --
 11  select 'Dimitry','Сборка ПК со скидкой',1 from dual union all
 12  select 'Dimitry','Ремонт ПК со скидкой' ,2 from dual union all
 13  select 'Dimitry','Ремонт ПК',2 from dual union all
 14  select 'Dimitry','Ремонт ПК',2 from dual union all
 15  select 'Dimitry','Ремонт ПК',2 from dual union all
 16  select 'Dimitry','Утилизация ПК',3 from dual)
 17  select fio from tmp
 18  where type in (1,2) and usluga not like '%со скидкой'
 19* group by fio having count(distinct usluga)=2
SQL> /

FIO
-------
kolhoz



....
stax
...
Рейтинг: 0 / 0
Получить все записи у которых есть две услуги
    #39974432
kolhoz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax, нет. Мне нужно отобрать всех клиентов (все записи клиентов), которым оказывались услуги сборки и ремонта ПК независимо это со скидкой или без.

Одному клиенту могли оказать три услуги ремонт без скидки, ремонт со скидкой и сборка ПК.
Второму могли два раза оказать услугу ремонта ПК, но не сборки, тогда такой пациент не нужен.
...
Рейтинг: 0 / 0
Получить все записи у которых есть две услуги
    #39974438
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolhoz
Stax, нет. Мне нужно отобрать всех клиентов (все записи клиентов) , которым оказывались услуги сборки и ремонта ПК независимо это со скидкой или без.

Одному клиенту могли оказать три услуги ремонт без скидки, ремонт со скидкой и сборка ПК.
Второму могли два раза оказать услугу ремонта ПК, но не сборки, тогда такой пациент не нужен.


так клиентов или все записи?

ps
если нужно ремонт% И сборка% то Dimitry Sibiryakov 22159278
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
SQL> ed
Wrote file afiedt.buf

  1  with tmp( fio, usluga,type) as (
  2  select 'kolhoz','Сборка ПК со скидкой',1 from dual union all
  3  select 'kolhoz','Сборка ПК',1 from dual union all
  4  select 'kolhoz','Ремонт ПК со скидкой',2 from dual union all
  5  select 'kolhoz','Ремонт ПК',2 from dual union all
  6  --
  7  select 'Stax','Ремонт ПК со скидкой',2 from dual union all
  8  select 'Stax','Ремонт ПК со скидкой',2 from dual union all
  9  select 'Stax','Ремонт ПК со скидкой',2 from dual union all
 10  select 'Stax','Ремонт ПК со скидкой',2 from dual union all
 11  select 'Stax','Ремонт ПК',2 from dual union all
 12  --
 13  select 'Dimitry','Сборка ПК со скидкой',1 from dual union all
 14  select 'Dimitry','Ремонт ПК со скидкой' ,2 from dual union all
 15  select 'Dimitry','Ремонт ПК',2 from dual union all
 16  select 'Dimitry','Ремонт ПК',2 from dual union all
 17  select 'Dimitry','Ремонт ПК',2 from dual union all
 18  select 'Dimitry','Утилизация ПК',3 from dual)
 19  select fio from tmp
 20  where type in (1,2)
 21* group by fio having count(distinct type)=2
SQL> /

FIO
-------
kolhoz
Dimitry



.....
stax
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Получить все записи у которых есть две услуги
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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