2015-06-29 2 views
0

У меня есть следующий запрос, чтобы показать мне граф строк данного base_objectid:Oracle SQL коррелируется подзапрос

Select Count(*) 
from 
(
select di.id, di.archkey, dc.mimetype, dc.film, dc.blip, dc.originalfilename, stp.id as baseID, null as Volume, stp.path as Dateiname_org, stp.basepath as Pfad, stp.filelength as Dateilaenge 
, 1 as "Dateinummer", dc.idx 
from 
doc_instance di 
, doc_content dc 
, sto_hydstorageplace stp 
where 
di.baseobjectid = :base_objectid 
and stp.archivekey = di.archkey 
and di.id = dc.docinstanceid (+) 
and stp.imagenr = dc.idx 
union 
select di.id, di.archkey, dc.mimetype, dc.film, dc.blip, dc.originalfilename, stf.id as baseID, stf.volume as Volume, stf.filename as Dateiname_org, stol.confvalue as Pfad, stf.filesize as Dateilaenge 
, stf.fileno as "Dateinummer", dc.idx 
from 
doc_instance di 
, doc_content dc 
, sto_storagefileentry stf 
, sto_storagelevelconf stc 
, sto_storagelevelconfentry stol 
where 
di.baseobjectid = :base_objectid 
and stf.archkey = di.archkey 
and stf.storagelevel = stc.storagelevel 
and stc.id = stol.storagelevel 
and stol.confkey = 'FILEARCHIVE' 
and di.id = dc.docinstanceid (+) 
and stf.fileno-1 = dc.idx 
) temp 
order by archkey, idx 

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

ответ

0

Предположительно, вам просто нужно изменить select к:

select base_objectid, count(*) 

Добавить group by перед order by:

group by base_objectid 

и удалять любые условия, ограничивающие выход.

Но трудно сказать. Ваш запрос в основном непонятен, потому что:

  • Вы используете синтаксис старого стиля join. Никогда запятыми в разделе from. ALways использование явно join синтаксис.
  • Хуже того, вы используете внешние соединения с (+), которые даже Oracle не рекомендует больше.
  • У вас нет отступов, чтобы помочь другим понять запрос.
Смежные вопросы