Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.044 c
6-1188851972
Aibolit
2007-09-04 00:39
2008.06.08
в терминальном сервере


9-1170325345
antonn
2007-02-01 13:22
2008.06.08
А не устраивать ли нам небольшие конкурсы по кодингу? (ч.22)


8-1180951254
ZMRaven
2007-06-04 14:00
2008.06.08
Перемотка? Пропуск кадров?


2-1211102144
Alx
2008-05-18 13:15
2008.06.08
Проблема с целостностью данных


15-1208981134
@!!ex_
2008-04-24 00:05
2008.06.08
Кому не лень - помогите.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский