Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вложеные запросы


Вася ©   (2008-05-20 08:39:00) 

День добрый!
есть Файрберд 1.5
работает ли в нем такая конструкция:

SELECT
*
FROM
(SELECT
RDB$RELATION_NAME, RDB$RELATION_ID
FROM
RDB$RELATIONS) AS R (RELATION_NAME, RELATION_ID)
т.е. селект из селекта


Sergey13   (2008-05-20 10:17:00) [1]

> [7] ЮЮ ©   (20.05.08 10:15)
> что немного промахнулся

Когда писал, думал что в цель бью. 8-)


ЮЮ   (2008-05-20 10:15:00) [2]

> Только вот так вот наверное

Я же уже признался в [5], что немного промахнулся :)


Sergey13   (2008-05-20 10:10:00) [3]

> [4] ЮЮ ©   (20.05.08 10:05)
> SELECT
> …
> FROM
> CURBUDGET b, SELECT sum() FROM rqrt r WHERE r.idmoGR =
> b.idmo

Только вот так вот наверное
SELECT *,( SELECT sum() FROM rqrt r WHERE r.idmoGR = b.idmo ) summa
FROM
CURBUDGET b


ЮЮ   (2008-05-20 10:06:00) [4]

Вру, подзапрос пичется в SELECT части, а не во FROM


ЮЮ   (2008-05-20 10:05:00) [5]

В IB это, кажется делается чуть чуть иначе, как-то так:

SELECT
 …
FROM
 CURBUDGET b, SELECT sum() FROM rqrt r WHERE r.idmoGR = b.idmo

т.е. для каждой записи из CURBUDGET b выполняется подзапрос rqrt r, т.е. отпадает надобность в group by, ибо связка r.idmoGR = b.idmo отбирает только нужные записи


Вася   (2008-05-20 09:48:00) [6]

Выход делать 2 вьюшки
одна вызывает другую


Вася   (2008-05-20 09:46:00) [7]

это пример
на самом деле вот такой запрос нужен

SELECT
cast(b.code AS INTEGER) as IDBUDGET_TEST,
B.CURBUDGET as BUDGET_TEST,
b.idmo,
dt.RQRTSUM1,
b.summ,
dt.RQRTSUM1 - b.summ difSum,
null cldate
from
(SELECT
r.codebudget,
max(mo.idmo_main) idmoGR,
null cldate,
sum(r."RQRTSUM") RQRTSUM1
FROM
 rqrt r,
 MO
WHERE
 r.idmo   = mo.idmo
and
 r.cldate is null
group by r.codebudget, mo.idmo_main) as dt, CURBUDGET b
where b.idmo = dt.idmoGR
and b.Code = dt.codebudget
and b.cldate is null
order by b.code    

но кажись 1.5 такое не приемлет
только 2


Sergey13   (2008-05-20 09:05:00) [8]

Нет. В таком виде не сработает.
Только я смысла что-то не вижу в таком запросе. Почему не просто

SELECT
RDB$RELATION_NAME RELATION_NAME, RDB$RELATION_ID RELATION_ID
FROM
RDB$RELATIONS


Наверх

Титульная страница Поиск, карта сайта Написать письмо