![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вложеные запросы
Вася © (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