Форум: "Базы";
Текущий архив: 2008.06.08;
Скачать: [xml.tar.bz2];
ВнизГде ошибка в синтаксисе? Найти похожие ветки
← →
Евгений Р. (2008-01-09 01:42) [0]select sum(IdfI) as SumIdfI
from
(
select idfI
from BrnStr
where idfD=:idfD
union
select idfI
from asPos
where idfD=:idfD
)
← →
DrPass © (2008-01-09 01:52) [1]Начиная с третьей строчки и до конца. Такие запросы IB5.x просто не поддерживает.
← →
Евгений Р. (2008-01-09 01:59) [2]вообщето это не IB, а FB1.5. Просто не было такого варианта в формочке выбора.
Фрагмент с 4й до 10й строчки самостоятельно выполняется.
Кажется, в литературе читал, что запрос к результату запроса поддерживается.
← →
Германн © (2008-01-09 02:08) [3]
> Где ошибка в синтаксисе? [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
)
← →
Johnmen © (2008-01-09 02:26) [4]
SELECT
(SELECT SUM(IdfI) FROM BrnStr WHERE idfD=:idfD1)+
(SELECT SUM(IdfI) FROM asPos WHERE idfD=:idfD2) AS SumIdfI
FROM RDB$DATABASE
← →
sniknik © (2008-01-09 02:26) [5]Германн © (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? тогда правильно, оставь как было)
← →
sniknik © (2008-01-09 02:29) [6]Johnmen © (09.01.08 02:26) [4]
ну ты тоже логику автора "испортил" ;о)... а вдруг ему нужна сумма неповторяющихся?
← →
Johnmen © (2008-01-09 02:36) [7]
> sniknik © (09.01.08 02:29) [6]
Действительно :)
Тогда чуть сложнее, но это домашнее задание автору.
А ещё ему пожелание - сделать нормальную структуру БД. Тогда и таких извращенческих запросов не надо будет писать...
← →
Германн © (2008-01-09 02:41) [8]
> sniknik © (09.01.08 02:26) [5]
>
> Германн © (09.01.08 02:08) [3]
> нет, это запрос из подзапроса, правомерен (если поддерживается),
> а по смыслу совсем не то, что у тебя.
>
Ну я же сразу сказал, что не силён :)
← →
Anatoly Podgoretsky © (2008-01-09 03:33) [9]> Евгений Р. (09.01.2008 01:59:02) [2]
А строчки в вопросе не нашлось, что бы это указать?
← →
PEAKTOP © (2008-01-09 04:38) [10]> Германн © (09.01.08 02:08) [3]
>
> Не силен в 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
> )
Наверное, таки да - не силен ... Просто на таблице "Имя таблицы" в 1 000 000 записей это будет колбаситься несколько минут.
А вот SELECT ... FROM (SELECT .. ) NAME меньше секунды.
← →
Johnmen © (2008-01-09 11:11) [11]
> PEAKTOP © (09.01.08 04:38) [10]
> А вот SELECT ... FROM (SELECT .. ) NAME меньше секунды.
Я бы даже сказал, микросекунды, необходимые для генерации исключения по неверному синтаксису. :))
Заметь, разговор не про >=FB2.0
← →
Евгений Р. (2008-01-09 14:46) [12]Благодарен всем проникшимся...
Но пробный упрощенный запрос так и не работает.
Получаю сообщение "Invalid token. Dynamic SQL Error. SQL error code = -104." в строке 3.
Что не так?
1 select max(idfI) as aaa
2 from
3 (
4 select idfI
5 from asPos
6 where idfD=:idfD
7 )
← →
Johnmen © (2008-01-09 15:11) [13]
> Что не так?
Нежелание/неумение читать ответы.
← →
DrPass © (2008-01-09 18:29) [14]
> вообщето это не IB, а FB1.5.
Суть та же самая. FB1.5x соответствует стандарту SQL92, а запросы из подзапросов появились в SQL99, кажется. А вот FB2.x твой запрос должна схавать
← →
Евгений Р. (2008-01-09 20:23) [15]
> DrPass © (09.01.08 18:29) [14]
Действительно, установил 2.0.3 и все заработало так, как ожидал.
Большое спасибо!!!!
А то уж начал думать о "Нежелание/неумение читать ответы".
← →
Johnmen © (2008-01-09 21:26) [16]
> А то уж начал думать о "Нежелание/неумение читать ответы".
Ну так и есть. Ибо [10] и [11].
← →
Евгений Р. (2008-01-09 22:03) [17]Пусть будет по Вашему, хотя [14,15]...
Поясните, на примере:
> SELECT ... FROM (SELECT .. ) NAME
Что значит последнее Name???
← →
Johnmen © (2008-01-09 22:12) [18]
> хотя [14,15]...
Ну понятно, что предыдущие посты можно просто не читать и вопрошать "Что не так?"
← →
Виталий Панасенко(дом) (2008-01-09 22:50) [19]
> Евгений Р. (09.01.08 22:03) [17]
А это значит, что в примечании к релизу написано, что 1,5 не поддерживает select * from (select * from table)... Иногда читать полезно то, что есть под рукой...Хотя, согласен, впадлу...
← →
Евгений Р. (2008-01-09 23:45) [20]
> Ну понятно, что предыдущие посты можно просто не читать
> и вопрошать "Что не так?"
Четкий ответ был в [14].
Мне просто интересно как работает [11]. Если Вы умеете не только гордиться собой, но и что-то объяснить, то попробуйте. Если нет, то ...
← →
Евгений Р. (2008-01-09 23:47) [21]
> Виталий Панасенко(дом) (09.01.08 22:50) [19]
Полностью согласен, но похоже что это знали только Вы и DrPass © (09.01.08 18:29) [14].
← →
Виталий Панасенко(дом) (2008-01-09 23:57) [22]
> Евгений Р. (09.01.08 23:47) [21]
>
>
> > Виталий Панасенко(дом) (09.01.08 22:50) [19]
>
> Полностью согласен, но похоже что это знали только Вы и
> DrPass © (09.01.08 18:29) [14].
уверен ?:-) а это:
> Johnmen © (09.01.08 11:11) [11]
>
>
> > PEAKTOP © (09.01.08 04:38) [10]
> > А вот SELECT ... FROM (SELECT .. ) NAME меньше секунды.
>
>
> Я бы даже сказал, микросекунды, необходимые для генерации
> исключения по неверному синтаксису. :))
> Заметь, разговор не про >=FB2.0
← →
Евгений Р. (2008-01-10 00:06) [23]Да, но согласитесь, что ответ на вопрос был дан только в
> DrPass © (09.01.08 18:29) [14]
А на [17], так, наверное никто и не сможет ответить???
← →
Виталий Панасенко(дом) (2008-01-10 00:11) [24]Сам не понял...Возможно, имелось ввиду
select t1.f1, t1.f2,...,(select t2.f1 from t2 where t2.key=t1.key) name from t1
where condition
← →
Евгений Р. (2008-01-10 00:17) [25]Да вроде у них под from в скобках стоял встроенный запрос. И после скобок злополучное Name.
А Вы, наверное имели ввиду as name (я не придераюсь, а хочу выяснить для себя некоторые тонкости)
← →
Виталий Панасенко(дом) (2008-01-10 00:28) [26]лучше у автора узнать его мысль...
← →
sniknik © (2008-01-10 01:24) [27]> Да, но согласитесь, что ответ на вопрос был дан только в
вообщето это был оффтопик а не ответ, кто ж знал что ты именно его ждешь?
вопрос был
> Где ошибка в синтаксисе?
для [IB5.x]
правда потом оказалось для FB 1.5, ну да ладно.
а верным, ты посчитал отвер на вопрос "какая версия FB поддерживает такой синтаксис?".
почему он верный мне например до сих пор неясно. ладно бы ошибся, сам не знаеш чего хочеш... но тогда после упоминания
> разговор не про >=FB2.0
(а для FB1.5, т.е. <FB2.0)
тебе надо бы сказать "сорри ребята, ошибся, не то спросил. мне все одно какая версия будет, лиш бы заставить работать именно данный запрос". вместо этого ты начал повторять по сути предыдущее, фактически подтверждая прежние установки о версии (и зародил первые сомнения в умении читать ....). общем "прохлопал". и не только это. ну да ладно, не будем заострять внимание, раз это задевает твое самолюбие, это же тебе хуже будет, не нам.
> А Вы, наверное имели ввиду as name
в моем варианте так и написано. просто as часто "опускается", синтаксис позволяет.
и после этого возмущаешься на сказанное про неумение читать ответы (???)... на правду нельзя обижаться.
← →
Евгений Р. (2008-01-10 02:24) [28]
> тебе надо бы сказать "сорри ребята
сорри ребята
Пусть будет ошибся, но я считаю, что не поняли друг-друга.
> раз это задевает твое самолюбие
идя сюда с вопросом сразу готов к ответам типа "наймите программиста...". Естественно на такие вопросы просто плюю (думаю, не я один).
Благодарен всем, участвовавшим в обсуждении. Хоть часто и злишся на высокомерие некоторых, но выносиш всегда что-то полезное!!!
← →
sniknik © (2008-01-10 08:53) [29]> но я считаю, что не поняли друг-друга.
?. тебя поняли. все. и именно так как ты спрашивал. неважно что думал ты про другое, говорил ты про конкретное и определенное.
т.что не понимаешь ты себя сам. имхо.
> Хоть часто и злишся на высокомерие некоторых
это, вообще реакция на констатацию факта Johnmen-ом, не "вяжется" с
> Естественно на такие вопросы просто плюю
опять, имхо, не понимание самого себя.
ты либо "плюешь" и пытаешься "вынести чтото полезное", либо вместо технических моментов выделяешь мнимые (в данном случае... и пока, может быть.) "нападки" на себя любимого и провоцируешь флейм по этому поводу.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2008.06.08;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.045 c