Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите разобраться!! / 22 сообщений из 22, страница 1 из 1
25.09.2020, 10:55
    #40002448
ivy8
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
День добрый. Помогите с запросом. Есть таблица зданий. В этих зданиях есть квартиры с действующими договорами. Нужно сделать выборку из таблицы зданий с определенным видом собственности. И даже если действующих договоров не имеется, этот дом все равно должен быть в выборке. В моем запросе выходит что, есть дома с определенным видом собственности, но только те на которые действуют договора. А мне нужно чтобы выбрал все дома, а потом чтобы прикрутил договора.
...
Рейтинг: 0 / 0
25.09.2020, 11:02
    #40002452
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
Вы сначала разберитесь, для какой СУБД вам писать запрос надо.
...
Рейтинг: 0 / 0
25.09.2020, 11:05
    #40002454
ivy8
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
ORCLE

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
25.09.2020, 12:06
    #40002476
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
Если с договорами outer join, то и другие условия не забудьте плюсиком пометить.

Код: plsql
1.
F.Annul (+) = 0
...
Рейтинг: 0 / 0
25.09.2020, 12:13
    #40002480
ivy8
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
dmdmdm
Если с договорами outer join, то и другие условия не забудьте плюсиком пометить.

Код: plsql
1.
F.Annul (+) = 0



без изменений.
...
Рейтинг: 0 / 0
25.09.2020, 12:32
    #40002491
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
ivy8,

Приведите свои таблицы в виде
Код: plsql
1.
2.
3.
4.
with здания as (
select ... from dual 
union all
...

и ожидаемый результат

Угадывать по вашему фото, что там, где и как - не хочется
...
Рейтинг: 0 / 0
25.09.2020, 12:46
    #40002497
ivy8
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
env
ivy8,

Приведите свои таблицы в виде
Код: plsql
1.
2.
3.
4.
with здания as (
select ... from dual 
union all
...

и ожидаемый результат

Угадывать по вашему фото, что там, где и как - не хочется


В том то и проблема. Я еще плаваю во всем этом. Если бы я могла...
Чем плохо мое представление? Можете просто сказать как что не так в запросе?
...
Рейтинг: 0 / 0
25.09.2020, 13:44
    #40002528
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
ivy8,

акуратненько раставте (+) (если надо то и возле констант)
group by Вам возможно и не нужен
мож придется переписать на ansi синтаксис


все таблички сразу не соеденяйте
снача сделайте правильную выборку из одной,
потом с двумя, потом добавте третью и тд
так Вы увидете в какой момет пропадут дома "без договоров"

зы
напр d1 как-то надо соеденить возможно с b
.....
stax
...
Рейтинг: 0 / 0
25.09.2020, 16:21
    #40002600
ivy8
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
Они попадают когда я исключаю из запроса таблицы Ордера и Предоставления жилья. Но они нужны результирующей таблице. Плюсы не помогли. group by нужен, т.к. много повторяющихся строк выходит.
...
Рейтинг: 0 / 0
25.09.2020, 16:33
    #40002602
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
ivy8
Они попадают когда я исключаю из запроса таблицы Ордера и Предоставления жилья. Но они нужны результирующей таблице. Плюсы не помогли.


ето понятно, ведь номер договора в табличке ордера

я имел ввиду строки "даже если действующих договоров не имеется"

Я б Вам набрал селектик, но я не знаю кто от кого зависит

приведите напр по несколько строк (3/4) из каждой таблицы



ps
в идеале er диаграму

.....
stax
...
Рейтинг: 0 / 0
25.09.2020, 18:37
    #40002644
Anton_1234
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
удалено
...
Рейтинг: 0 / 0
25.09.2020, 19:03
    #40002654
graycode
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
ivy8
В том то и проблема. Я еще плаваю во всем этом. Если бы я могла...
Чем плохо мое представление?

FAQ: Как мне оформить свое сообщение?
...
Рейтинг: 0 / 0
25.09.2020, 23:34
    #40002729
Правильный Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
ivy8
group by нужен, т.к. много повторяющихся строк выходит.

Какая-то диковинная логика.
Если уж дубли не получается исключить условиями WHERE, то для этого есть DISTINCT.
У GROUP BY иное назначение.
...
Рейтинг: 0 / 0
28.09.2020, 05:28
    #40003178
ivy8
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
Stax
ivy8
Они попадают когда я исключаю из запроса таблицы Ордера и Предоставления жилья. Но они нужны результирующей таблице. Плюсы не помогли.


ето понятно, ведь номер договора в табличке ордера

я имел ввиду строки "даже если действующих договоров не имеется"

Я б Вам набрал селектик, но я не знаю кто от кого зависит

приведите напр по несколько строк (3/4) из каждой таблицы



ps
в идеале er диаграму

.....
stax


Связь: здания-части здания-предоставление жилья-оредра

Включила здание без предоставления жилья, и пару аннулированных ордеров.
Буду премного благодарна.
...
Рейтинг: 0 / 0
28.09.2020, 11:31
    #40003260
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
ivy8,

с трудом набрал
чутку подправил данные
Код: 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.
31.
32.
33.
34.
35.
36.
37.
38.
with "Здания" (BUILD_ID,NAME,OWNERCLS_ID) as (
  select 8209,'ул. Абызова, 19',5 from dual union all
  select 6251,'ул. Азотная, 9',5 from dual union all
  select 3735,'ул. Авроры, 17а',5 from dual union all
  select 3737,'ivy8',5 from dual)
,"Части здания" (PREMISES_ID,NAME,BUILD_ID,NOTEPRIV_ID) as (
  select 201061,'о/д',8209,2 from dual union all
  select 174138,'1',3735,null  from dual union all
  select 198459,'1',6251,1  from dual)
,"Предоставление жилья" (DWELLING_ID,NAME,PREMISES_ID) as (
  select 174228,'',174138 from dual union all
  select 240499,'сн',198459  from dual )
,"Ордера" (FLATORDER_ID,NAME,NUMBDOCUM,DATEDOCUM,DWELLING_ID,DOCDATE,ANNUL) as (
  select 174276,'ордер','014840',37816,174228,to_date('14.07.2003','dd.mm.yyyy'),0 from dual union all 
  select 258759,'сн','9517',40490,240499,to_date('14.07.2003','dd.mm.yyyy'),-1 from dual union all 
  select 248227,'сн','7618',40130,240499,to_date('14.07.2003','dd.mm.yyyy'),-1 from dual union all 
  select 280751,'сн','16729',41764,240499,to_date('14.07.2003','dd.mm.yyyy'),0 from dual )
select *
 from
   "Здания" b
  ,"Части здания" p
  ,"Предоставление жилья" d1
  ,"Ордера" f
where
  b.OWNERCLS_ID=5
  and  p.BUILD_ID(+)=b.BUILD_ID
  and (p.NOTEPRIV_ID(+) is null or NOTEPRIV_ID(+)=2)
  and d1.PREMISES_ID(+)=p.PREMISES_ID
  and f.DWELLING_ID(+)=d1.DWELLING_ID and ANNUL(+)=0
/
SQL> /

  BUILD_ID NAME            OWNERCLS_ID PREMISES_ID NAM   BUILD_ID NOTEPRIV_ID DWELLING_ID NA PREMISES_ID FLATORDER_ID NAME  NUMBDO  DATEDOCUM DWELLING_ID DOCDATE         ANNUL
---------- --------------- ----------- ----------- --- ---------- ----------- ----------- -- ----------- ------------ ----- ------ ---------- ----------- ---------- ----------
      3735 ул. Авроры, 17а           5      174138 1         3735                  174228         174138       174276 ордер 014840      37816      174228 14.07.2003          0
      8209 ул. Абызова, 19           5      201061 о/д       8209           2
      3737 ivy8                      5
      6251 ул. Азотная, 9            5




......
stax
...
Рейтинг: 0 / 0
28.09.2020, 11:33
    #40003265
ivy8
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
Stax,

Спасибо. Я бы так не смогла). А если зданий 4000?
У азотной, 9 есть одна квартира с орждером. А в таблице ее нет.
...
Рейтинг: 0 / 0
28.09.2020, 11:37
    #40003269
ivy8
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
И ордеров там под 200 тыщ.
...
Рейтинг: 0 / 0
28.09.2020, 11:42
    #40003272
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
ivy8
А если


Мы вроде алгоритм обсуждаем, а не объем данных.
На малом объеме отладите, запускайте по любому.
...
Рейтинг: 0 / 0
28.09.2020, 11:44
    #40003274
ivy8
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
ок
...
Рейтинг: 0 / 0
28.09.2020, 11:46
    #40003275
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
У азотной, 9 есть одна квартира с орждером. А в таблице ее нет.

Следуйте совету:

все таблички сразу не соеденяйте
снача сделайте правильную выборку из одной,
потом с двумя, потом добавте третью и тд
так Вы увидете в какой момет пропадут дома "без договоров"
...
Рейтинг: 0 / 0
28.09.2020, 12:04
    #40003288
ivy8
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
ок
...
Рейтинг: 0 / 0
28.09.2020, 12:40
    #40003318
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться!!
ivy8
Stax,

Спасибо. Я бы так не смогла). А если зданий 4000?
У азотной, 9 есть одна квартира с орждером. А в таблице ее нет.


with как-бы "виртуальные" данные, можно добавлять/менять/удалять для отладки селекта

можете добавить 9-ю квартиру через union all/по аналогии (не знаю в какой табличке квартиры)

если убрать with (до select *) то будут использоваться Ваши таблички на миллионы,
но так тяжело и долго отлаживать селект

удобно или создавать тестовые таблички (что имхо более правильно), или имитировать через with

пробуйте

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


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