Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите пожалуйста, никак не выходит каменный цветок / 13 сообщений из 13, страница 1 из 1
13.01.2020, 10:39
    #39913117
NikiolosN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста, никак не выходит каменный цветок
Добрый день
задачка вроде как плевая, но не выходит каменный цветок.


имеется две таблицы, одна со списком документом, вторая со списком файлов прикрепленных к документам из первой таблица.
причем не все документы имеют прикрепленные файлы. Т.е. когда заходишь в документ, хотелось бы увидеть прикрепленные к нему файлы

дано:
таблица 1
ID | название документа
1 док 1
2 док 2
3 док 3

таблица 2

ID | DOC_ID| имя файла | размер файла
1 1 файл 1 10
2 2 файл 2 20
3 5 файл 3 30


ID таблицы 1 = DOC_ID таблицы 2



состряпал вот такое:

select таблица 2.ID as ID,
таблица 2.DOC_ID as DOC_ID,
таблица 2."Имя файла" as "Имя файла",
таблица 2."Размер файла" as "Размер файла",
from таблица 2 таблица 2,
таблица 1 таблица 1
where таблица 1.ID=таблица 2.DOC_ID

в итоге получаю что выбоку из (файл1,файл2) и оба этих файла отображаются во всех документах, а должны отображаться только в соответсвующих,т.е. док1, файл1; док2, файл2, если прикреплено несколько файлов, то на выходе надо получить например док3, файл3, файл4, файл5
...
Рейтинг: 0 / 0
13.01.2020, 10:47
    #39913122
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста, никак не выходит каменный цветок
NikiolosN,

1) where таблица 1.ID=таблица 2.DOC_ID(+)
2) сгруппировать по таблица 1.ID + listagg("Имя файла" ,',')

зы
длина списка до 4000байт (зависит от версии)

.....
stax
...
Рейтинг: 0 / 0
13.01.2020, 11:13
    #39913126
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста, никак не выходит каменный цветок
NikiolosN
в итоге получаю что выбоку из (файл1,файл2) и оба этих файла отображаются во всех документах
Запрос возвращает все документы независимо от " когда заходишь в документ". Джоин с "таблица 1" не нужен.
...
Рейтинг: 0 / 0
13.01.2020, 11:37
    #39913130
NikiolosN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста, никак не выходит каменный цветок
если вот так
select таблица 2.ID as ID,
таблица 2.DOC_ID as DOC_ID,
таблица 2."Имя файла" as "Имя файла",
таблица 2."Размер файла" as "Размер файла",
from таблица 2 таблица 2,
таблица 1 таблица 1
where таблица 1.ID=таблица 2.DOC_ID(+)

то выводить еще кучу пустых строк
...
Рейтинг: 0 / 0
13.01.2020, 11:44
    #39913133
NikiolosN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста, никак не выходит каменный цветок
ps
я начинающий.
...
Рейтинг: 0 / 0
13.01.2020, 11:51
    #39913137
NikiolosN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста, никак не выходит каменный цветок
а если вот так
select таблица 2.ID as ID,
таблица 2.DOC_ID as DOC_ID,
таблица 2."Имя файла" as "Имя файла",
таблица 2."Размер файла" as "Размер файла",
from таблица 2 таблица 2,
таблица 1 таблица 1
where таблица 1.ID=таблица 2.DOC_ID(+) таблица 1.ID + listagg("Имя файла" ,',')

то выдает оракловую ошибку

ORA-00934: group function is not allowed here
...
Рейтинг: 0 / 0
13.01.2020, 11:52
    #39913138
NikiolosN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста, никак не выходит каменный цветок
те. вот так


select таблица 2.ID as ID,
таблица 2.DOC_ID as DOC_ID,
таблица 2."Имя файла" as "Имя файла",
таблица 2."Размер файла" as "Размер файла",
from таблица 2 таблица 2,
таблица 1 таблица 1
where таблица 1.ID=таблица 2.DOC_ID(+) GROUP BY таблица 1.ID + listagg("Имя файла" ,',')

то выдает оракловую ошибку

ORA-00934: group function is not allowed here
...
Рейтинг: 0 / 0
13.01.2020, 12:02
    #39913144
alex-ls
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста, никак не выходит каменный цветок
NikiolosN
GROUP BY таблица 1.ID + listagg("Имя файла" ,',')


Да Вы не просто начинающий! Вы нубас полный...
...
Рейтинг: 0 / 0
13.01.2020, 12:04
    #39913145
NikiolosN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста, никак не выходит каменный цветок
даже не спорю ))
...
Рейтинг: 0 / 0
13.01.2020, 12:06
    #39913150
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста, никак не выходит каменный цветок
NikiolosN,

Код: 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.
39.
40.
41.
42.
43.
44.
SQL> with t1 (id,nd) as (
  2  select 1,'док 1' from dual union all
  3  select 2,'док 2' from dual union all
  4  select 3,'док 3' from dual)
  5  ,t2 (ID,DOC_ID,nf,l) as (
  6  select 1, 1, 'файл 1', 10 from dual union all
  7  select 2, 2, 'файл 2', 20 from dual union all
  8  select 3, 2, 'файл 3', 30 from dual)
  9  select
 10    t1.id,t1.nd,t2.nf
 11  from t1,t2
 12  where t1.id=t2.doc_id(+)
 13  /

        ID ND    NF
---------- ----- ------
         1 док 1 файл 1
         2 док 2 файл 2
         2 док 2 файл 3
         3 док 3

SQL> with t1 (id,nd) as (
  2  select 1,'док 1' from dual union all
  3  select 2,'док 2' from dual union all
  4  select 3,'док 3' from dual)
  5  ,t2 (ID,DOC_ID,nf,l) as (
  6  select 1, 1, 'файл 1', 10 from dual union all
  7  select 2, 2, 'файл 2', 20 from dual union all
  8  select 3, 2, 'файл 3', 30 from dual)
  9  select
 10    t1.id
 11  ,min(t1.nd) nd
 12  ,listagg(nf,',') within group(order by t2.id) list_nf
 13  from t1,t2
 14  where t1.id=t2.doc_id(+)
 15  group by t1.id
 16  order by t1.id
 17  /

        ID ND    LIST_NF
---------- ----- --------------------------------------------------
         1 док 1 файл 1
         2 док 2 файл 2,файл 3
         3 док 3



....
stax
...
Рейтинг: 0 / 0
13.01.2020, 12:09
    #39913152
alex-ls
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста, никак не выходит каменный цветок
Что делают новички? правильно - читают! не пишут, в том числе на форуме, тупые вопросы, а читают...
...
Рейтинг: 0 / 0
13.01.2020, 12:20
    #39913156
NikiolosN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста, никак не выходит каменный цветок
а еще есть google )))
...
Рейтинг: 0 / 0
13.01.2020, 12:21
    #39913158
NikiolosN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста, никак не выходит каменный цветок
Stax,

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


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