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

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

Где ошибка в синтаксисе? [IB5.x]


Страницы:   1 2

Евгений Р. ©   (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 просто не поддерживает.


Страницы:   1 2

Наверх

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