v7: Incorrect syntax near the keyword 'ORDER'. #669829


#0 by Lacoster
Туплю. Есть 2 запроса. Каждый в отдельности отрабатывает без ошибок. Но когда я делаю Union All вылезает ошибка Incorrect syntax near the keyword 'ORDER'. Ну что я делаю не так?
#1 by Ёпрст
дык выкини упорядочивание..
#2 by Ёпрст
Если оно нужно тебе - оберни юнионы в подзапрос, снаружи упорядочи как угодно
#3 by Lacoster
ORDER BY items must appear in the select list if the statement contains a UNION operator.
#4 by Ёпрст
+ убери типизацию во втором юнионе.
#5 by Ёпрст
dsrbyb crj,rb vt;le .ybjyfv
#6 by Lacoster
Упорядочевание мне вообще не нужно. он ругается что с Юнионом надо упорядочить, ну я и упорядочил
#7 by Ёпрст
выкини скобки между юнионами
#8 by Lacoster
текстзапроса=ТекстЗапросаГруппы+"UNION ALL"+ТекстЗапросаБуквы; Всё равно ошибка ORDER BY items must appear in the select list if the statement contains a UNION operator.
#9 by Ёпрст
пилять, да выкинь ты ордер бай с обоих запросов.
#10 by Lacoster
выкинул
#11 by Ёпрст
и ?
#12 by Ёпрст
+ своим WHERE  ты left join сделал как inner join, оно так тебе и надо ?
#13 by Ёпрст
а чорт, в спутал..
#14 by Ёпрст
у тебя псевдоним Лайк..
#15 by Lacoster
такая же ошибка, ничего не поменялось. ORDER BY items must appear in the select list if the statement contains a UNION operator.
#16 by Mikeware
почему только во втором? в обоих. и обернуть в подзапрос.
#17 by Lacoster
Да во всех убрал
#18 by varelchik
Тебе же четко сказали. УБЕРИ ТИПИЗАЦИЮ. А делай ее уже в конце.
#19 by Lacoster
в подзапрос оборачивать не хочу. У меня у номенклатуры бывают поля не все заполнены. И я буду проверять если заполнено поле, то + Юнион
#20 by Lacoster
Типизацию чего?
#21 by varelchik
простой пример: select t.МоеПоле [Поле $Справочник] from ( select
#22 by varelchik
Этого $НаценочнаяТаблица.ГруппаТовара [ГруппаТовара $Справочник]
#23 by varelchik
+ а в union-ах делай алисы разными. НаценочнаяТаблица НаценочнаяТаблица1 НаценочнаяТаблица2 и тд.
#24 by SnarkHunter
Думаешь, понял?
#25 by varelchik
все union-ы собтрай в один запрос. и вот его-то и типизируй.
#26 by varelchik
Это ты кому? Мне что-ли?
#27 by Lacoster
не помогло. Буквально неделю назад писал подобное и все работало. Вот пример Тут всё объединяется и работает
#28 by Ёпрст
покажи весь текст запроса целиком
#29 by Lacoster
Я не объединял ещё в подзапрос. Я пытаюсь понять почему в таком же примере неделю назад Юнион работал, а сейчас не работает
#30 by Ёпрст
ты не выкинул order by из запроса, вот и не работает
#31 by Lacoster
Угараешь? Сам же сказал выкинуть
#32 by Lacoster
сейчас у меня такой вид ТекстЗапросаГруппы="        |SELECT
#33 by Ёпрст
наслаждайся
#34 by Lacoster
Думал пробелы помогут? Не помогло, такая же ошибка
#35 by Ёпрст
ну и , во втором запросе надо бы все алиясы сделать отличными от первого запроса, метапарсер 1cpp этого не переваривает
#36 by Ёпрст
ТекстЗапросаБуквы="
#37 by Lacoster
Ёбта! Щас пробну
#38 by Ёпрст
ну и выкинуть типизацию чо второго запрса..
#39 by Lacoster
Второй запрос получил вот такйо вид ТекстЗапросаБуквы="        |SELECT
#40 by Ёпрст
ошибка какая ?
#41 by Ёпрст
дай текст и з запрос.Отладка
#42 by Lacoster
{C:DOCUMENTS AND SETTINGSИПОПОВРАБОЧИЙ СТОЛТЕСТ.ERT}: State 42000, native 104, message [Microsoft][ODBC SQL Server Driver][SQL Server]ORDER BY items must appear in the select list if the statement contains a UNION operator. ТекстЗапросаГруппы="
#43 by Mikeware
издеваешься?
#44 by Lacoster
SELECT    , ( select top 1 cast(c11714_vv.value as numeric(9, 2)) from _1sconst as c11714_vv (nolock) where (c11714_vv.date <= '20130620') order by c11714_vv.date desc, c11714_vv.time desc, c11714_vv.docid desc, c11714_vv.row_id desc FROM sc11711 AS НаценочнаяТаблица With (NOLOCK) inner join sc11711 Лайк on НаценочнаяТаблица.PARENTID = Лайк.ID                                                        AND НаценочнаяТаблица.IsMark = 0                                                        and НаценочнаяТаблица.sp11736=' 8FA     X001'                                                        AND Лайк.Code like '%Опт%' UNION ALL SELECT    , ( select top 1 cast(c11714_vv.value as numeric(9, 2)) from _1sconst as c11714_vv (nolock) where (c11714_vv.date <= '20130620') order by c11714_vv.date desc, c11714_vv.time desc, c11714_vv.docid desc, c11714_vv.row_id desc FROM sc11711 AS НаценочнаяТаблица1 With (NOLOCK) inner join sc11711 Лайк1 on НаценочнаяТаблица1.PARENTID = Лайк1.ID                                                        AND НаценочнаяТаблица1.IsMark = 0                                                        and НаценочнаяТаблица1.sp11736=' 8FA     X001'                                                        AND Лайк1.Code like '%Опт%' ит = рс.ВыполнитьИнструкцию(ТекстЗапроса); {C:DOCUMENTS AND SETTINGSИПОПОВРАБОЧИЙ СТОЛТЕСТ.ERT}: State 42000, native 104, message [Microsoft][ODBC SQL Server Driver][SQL Server]ORDER BY items must appear in the select list if the statement contains a UNION operator.
#45 by SnarkHunter
Ха-ха-ха...
#46 by Lacoster
?
#47 by Ёпрст
тебе придётся последенее значение не использовать, а через max ручонками выбрать значение периодики, или, получить его на выходе после юниона
#48 by Lacoster
Это какое последнее значение? У меня таблицы получаются из 1 строки. Мб не париться и воспользоваться функцией Заполнить?
#49 by Ёпрст
, $ПоследнееЗначение.НаценочнаяТаблица.Коэффициент(НаценочнаяТаблица1.ID, :ВыбДата) Коэффициент
#50 by Lacoster
чёт не догнал. Ладно, я каждый запрос отработаю отдельно и потом ТЗ-хи объединю
#51 by Lacoster
Да и кстати, закоментив Последнее значение у меня отработал без ошибок, но я получил таблицу из 2-х строк (вроде как положено), только из одинаковых строк
#52 by Rie
Тогда уж временные таблицы лучше использовать, IMHO.
#53 by Lacoster
да ему будет не тяжело склеить 4 таблички состоящие из 1 строчки. И то иногда будет не 4 таблички, а 2, т.к. не все реквизиты у номенклатуры заполнены
#54 by ADirks
не, ну почему - если запихнёт все в подзапрос, то и ПоследнееЗначение можно будет. Я вот ни разу не понимаю, чё все так подзапросов боятся? Оптимизатору ваще пофиг, хоть сто уровней наверни. И, главное, позапросов боятся, а временных таблиц и запросов в N этапов - не боятся. Загадка?
#55 by Ёпрст
ну я и грю, получать его опосля юниона..
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С