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

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

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

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



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

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

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

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

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

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

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


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

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


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

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


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

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

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

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



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

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

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

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


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

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

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

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



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

.....
stax


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

Включила здание без предоставления жилья, и пару аннулированных ордеров.
Буду премного благодарна.
...
Рейтинг: 0 / 0
Помогите разобраться!!
    #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
Помогите разобраться!!
    #40003265
ivy8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

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


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

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

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

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


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

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

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

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

пробуйте

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


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