Имя: Пароль:
1C
1С v8
что я делаю не так %)) или это глюк платформы
,
0 DrHiHi
 
03.11.11
13:06
платформа 8.2.14.537
есть запрос

ВЫБРАТЬ
   ЕСТЬNULL(ВложенныйЗапрос.Поле1, 0) КАК Поле2,
   ЕСТЬNULL(ВложенныйЗапрос1.Поле1, 0) КАК Поле11
ИЗ
   (ВЫБРАТЬ
       NULL КАК Поле1) КАК ВложенныйЗапрос,
   (ВЫБРАТЬ
       NULL КАК Поле1) КАК ВложенныйЗапрос1

все хорошо, но если я хочу:

ВЫБРАТЬ
   ЕСТЬNULL(ВложенныйЗапрос.Поле1, 0) * ЕСТЬNULL(ВложенныйЗапрос1.Поле1, 0) КАК Поле1
ИЗ
   (ВЫБРАТЬ
       NULL КАК Поле1) КАК ВложенныйЗапрос,
   (ВЫБРАТЬ
       NULL КАК Поле1) КАК ВложенныйЗапрос1
то ругается

в чем прикол?? или это глюк?? пробовал через соединение (истина, ложь)....
1 vde69
 
03.11.11
13:10
вложеные запросы соедени полным джойном
2 Wobland
 
03.11.11
13:10
1С:Предприятие 8.1 (8.1.15.14)
полёт нормальный
3 ptiz
 
03.11.11
13:12
Да, ругается
4 DrHiHi
 
03.11.11
13:15
(1) ругается
(2) значить глюк в платформе 8.2 %))
5 Wobland
 
03.11.11
13:18
подождём кого-нибудь с 8.2.13
6 Wobland
 
03.11.11
13:18
(5) это же я! ;)
7 smitru
 
03.11.11
13:20
(1) Жуть :-)))
8 Wobland
 
03.11.11
13:20
1С:Предприятие 8.2 (8.2.13.219)
ругается
9 Рэйв
 
03.11.11
13:26
8.2.14.519 тоже ругается
10 Starhan
 
03.11.11
13:29
А через выразить пробваоли? )
11 smitru
 
03.11.11
13:29
о-о-о-о.. а как сам SQL на такое извращение материться

ЗЫ.. нафига мучать платформу и сиквел? Может немного включить мозГГ и сделать нормальный запрос???
12 shuhard
 
03.11.11
13:30
(8) 8.2.12.96
аналогично
13 BigShmax
 
03.11.11
13:32
8.2.12.96  ругается
14 izekia
 
03.11.11
13:36
у меня тоже 8.2.13.219
15 DrHiHi
 
03.11.11
13:47
(11) уже переписал, просто думал поменьше исправлять в типовом запросе
16 xarann
 
03.11.11
13:48
SQL 2008
select isnull(p1,0)*isnull(p2,0) as result from
(
   (select null as p1) as t1 cross join
   (select null as p2) as t2
)

result = 0
17 xarann
 
03.11.11
13:59
(11) в чем мучение сиквела, просвети пожалуйста,
вычислить isnull(NULL,(0))*isnull(NULL,(0)) ?
18 apokrit
 
03.11.11
14:00
(0) Из V8Update'а по поводу изменений относительно 8.1
При использовании в операциях языка запросов "+" и "-" полей из вложенных запросов, в которых получается только значение NULL, выдается ошибка языка запросов.

* это конечно не "+" и "-", но похоже это именно оно.
19 PVV65
 
03.11.11
14:04
Если написать так -


ВЫБРАТЬ
   ЕСТЬNULL(ВложенныйЗапрос.Поле1, 2) КАК Поле2,
   ЕСТЬNULL(ВложенныйЗапрос1.Поле1, 3) КАК Поле11
ПОМЕСТИТЬ Таб1
ИЗ
   (ВЫБРАТЬ
       NULL КАК Поле1) КАК ВложенныйЗапрос,
   (ВЫБРАТЬ
       NULL КАК Поле1) КАК ВложенныйЗапрос1
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Т1.Поле2 * Т1.Поле11
ИЗ
   Таб1 КАК Т1


запрос выполняется правильно, но при входе в конструктор выдает ошибку.
20 smitru
 
03.11.11
14:15
(17) а ты найди отличия между запросом в (16) и (0) - может догадаешься

ЗЫ.. хинт - является ли тождеством замена "запятой" на "cross join "?????
21 xarann
 
03.11.11
14:28
(20)
То есть ANSI 89 в топку? (The ANSI 89 syntax uses a cross join or comma-delimited list of tables, and places the join in the WHERE clause.)
Нет же -
-- >
select isnull(p1,0)*isnull(p2,0) as result from
   (select null as p1) as t1,
   (select null as p2) as t2
-- <

result is 0
Вопрос в силе - в чем напряг для сиквела :)
22 xarann
 
03.11.11
14:35
(21) И просто в силу его устарелости и "заплесневелости" я и привел тождественную замену на cross join.
P.S. Извиняюсь за форматирование сообщений.
23 xarann
 
03.11.11
14:44
Беда в том что у sql 2 из двух, а у парсера 1с 0 из двух в корректном запросе - переводил и с "полное соединение по истина" и через запятую! Скорее всего "видим null, пофиг на естьnull"
Считаю эту ситуацию глюком платформы.
24 DrHiHi
 
03.11.11
14:47
(23) вот и я так думаю
25 xarann
 
03.11.11
14:48
И совсем забыл сказать :) Поставив в (0) допустим 2 вместо NULL получаем закономерное 4 без нытья синтакс-анализатора!!!
26 Азазелло
 
03.11.11
15:01
А вообще вот так работает

ВЫБРАТЬ    
   ВЫРАЗИТЬ(ЕСТЬNULL(ВложенныйЗапрос.Поле1, 0) КАК ЧИСЛО) * ВЫРАЗИТЬ(ЕСТЬNULL(ВложенныйЗапрос1.Поле1, 0) КАК ЧИСЛО) КАК Поле1
ИЗ
   (ВЫБРАТЬ
       NULL КАК Поле1) КАК ВложенныйЗапрос,    
   (ВЫБРАТЬ
       NULL КАК Поле1) КАК ВложенныйЗапрос1

Платформа 8.2.13
27 xarann
 
03.11.11
15:05
Вот жеж ёжик, а я ВЫРАЗИТЬ все выражение обернул, не сработало, и на каждый операнд не стал пробовать...
Независимо от того, куда вы едете — это в гору и против ветра!