![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Где ошибка в синтаксисе? [IB5.x]
Евгений Р. © (2008-01-09 01:42:00)select sum(IdfI) as SumIdfI
from
(
select idfI
from BrnStr
where idfD=:idfD
union
select idfI
from asPos
where idfD=:idfD
)
Anatoly Podgoretsky (2008-01-09 03:33:00) [21]> Евгений Р. (09.01.2008 01:59:02) [2]
А строчки в вопросе не нашлось, что бы это указать?
Германн (2008-01-09 02:41:00) [22]
> sniknik © (09.01.08 02:26) [5]
>
> Германн © (09.01.08 02:08) [3]
> нет, это запрос из подзапроса, правомерен (если поддерживается),
> а по смыслу совсем не то, что у тебя.
>
Ну я же сразу сказал, что не силён :)
Johnmen (2008-01-09 02:36:00) [23]
> sniknik © (09.01.08 02:29) [6]
Действительно :)
Тогда чуть сложнее, но это домашнее задание автору.
А ещё ему пожелание - сделать нормальную структуру БД. Тогда и таких извращенческих запросов не надо будет писать...
sniknik (2008-01-09 02:29:00) [24]Johnmen © (09.01.08 02:26) [4]
ну ты тоже логику автора "испортил" ;о)... а вдруг ему нужна сумма неповторяющихся?
sniknik (2008-01-09 02:26:00) [25]Германн © (09.01.08 02:08) [3]
нет, это запрос из подзапроса, правомерен (если поддерживается), а по смыслу совсем не то, что у тебя.
Евгений Р. (09.01.08 01:42)
попробуй так (хотя я тоже в FB не силен, лучше бы ты к ним на сайт за документацией "сходил")
select sum( a.IdfI) as SumIdfI
from
(
select idfI
from BrnStr
where idfD=: idfD1
union all
select idfI
from asPos
where idfD=: idfD2
) as a
(all не связано с синтаксисом, и так и так пройдет, это другого рода ошибка, логическая. как мне кажется... кто знает логику автора?. параметры... х.з. у тебя BDE? тогда правильно, оставь как было)
Johnmen (2008-01-09 02:26:00) [26]
SELECT
(SELECT SUM(IdfI) FROM BrnStr WHERE idfD=:idfD1)+
(SELECT SUM(IdfI) FROM asPos WHERE idfD=:idfD2) AS SumIdfI
FROM RDB$DATABASE
Германн (2008-01-09 02:08:00) [27]
> Где ошибка в синтаксисе? [IB5.x]
Не силен в SQL. Не силен в IB/FB.
Но почему-то мне (знакомому частично с LocalSQL) кажется, что запрос должен был бы выглядеть примерно так:
select sum(IdfI) as SumIdfI
from "Имя таблицы"
where IdfI in
(
select idfI
from BrnStr
where idfD=:idfD
union
select idfI
from asPos
where idfD=:idfD
)
Евгений Р. (2008-01-09 01:59:00) [28]вообщето это не IB, а FB1.5. Просто не было такого варианта в формочке выбора.
Фрагмент с 4й до 10й строчки самостоятельно выполняется.
Кажется, в литературе читал, что запрос к результату запроса поддерживается.
DrPass (2008-01-09 01:52:00) [29]Начиная с третьей строчки и до конца. Такие запросы IB5.x просто не поддерживает.