powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите пожалуйста, никак не выходит каменный цветок
13 сообщений из 13, страница 1 из 1
Помогите пожалуйста, никак не выходит каменный цветок
    #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
Помогите пожалуйста, никак не выходит каменный цветок
    #39913122
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NikiolosN,

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

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

.....
stax
...
Рейтинг: 0 / 0
Помогите пожалуйста, никак не выходит каменный цветок
    #39913126
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NikiolosN
в итоге получаю что выбоку из (файл1,файл2) и оба этих файла отображаются во всех документах
Запрос возвращает все документы независимо от " когда заходишь в документ". Джоин с "таблица 1" не нужен.
...
Рейтинг: 0 / 0
Помогите пожалуйста, никак не выходит каменный цветок
    #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
Помогите пожалуйста, никак не выходит каменный цветок
    #39913133
NikiolosN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ps
я начинающий.
...
Рейтинг: 0 / 0
Помогите пожалуйста, никак не выходит каменный цветок
    #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
Помогите пожалуйста, никак не выходит каменный цветок
    #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
Помогите пожалуйста, никак не выходит каменный цветок
    #39913144
alex-ls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NikiolosN
GROUP BY таблица 1.ID + listagg("Имя файла" ,',')


Да Вы не просто начинающий! Вы нубас полный...
...
Рейтинг: 0 / 0
Помогите пожалуйста, никак не выходит каменный цветок
    #39913145
NikiolosN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
даже не спорю ))
...
Рейтинг: 0 / 0
Помогите пожалуйста, никак не выходит каменный цветок
    #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
Помогите пожалуйста, никак не выходит каменный цветок
    #39913152
alex-ls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что делают новички? правильно - читают! не пишут, в том числе на форуме, тупые вопросы, а читают...
...
Рейтинг: 0 / 0
Помогите пожалуйста, никак не выходит каменный цветок
    #39913156
NikiolosN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а еще есть google )))
...
Рейтинг: 0 / 0
Помогите пожалуйста, никак не выходит каменный цветок
    #39913158
NikiolosN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

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


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