Имя: Пароль:
1C
 
Как перемножается таблицы в cross join
0 el-gamberro
 
24.06.11
15:24
Вопрос чисто теоретический

Имеем:
ВЫБРАТЬ ...
ИЗ Таблица1 ЛЕВОЕ СОЕДИНЕНИЕ Таблица2 ПО ...
, (CROSS JOIN) Таблица3

Вопрос CROSS JOIN будет с произведением таблиц 1 и 2 или будет произведение таблицы 3 с каждой таблицей по отдельности?
1 el-gamberro
 
24.06.11
15:25
Практическая задача мне к произведению таблиц необходимо присобачить конкретное значение. Решил вывернутся через кросс джоин
2 rs_trade
 
24.06.11
15:27
(1) с результатом левого должно быть
3 Ёпрст
 
гуру
24.06.11
15:29
(0) а в снеговике кросс джоин вообще есть ?
..
4 el-gamberro
 
24.06.11
15:30
(3) Да, просто таблицы через запятую.
5 MRAK
 
24.06.11
15:32
(4) это как?
6 Ёпрст
 
гуру
24.06.11
15:33
(4) аа..
ну, логически они должны обрабатываться слева на право, т.е первая тобличная операция соединения будет левой таблицей для второй, потом результат левой для третьей и т.д.
Но на практике, скуль для оптимизации часто делает не так - может сам поменять местами порядок для ускорения..
7 rs_trade
 
24.06.11
15:33
(5) для тебя это новость? просто в конструкторе добавь две таблицы. без связей
8 el-gamberro
 
24.06.11
15:34
(5) Выбрать * ИЗ Таблица1, Таблица2
9 Ёпрст
 
гуру
24.06.11
15:34
+6 результат от этого не поменяется.
10 el-gamberro
 
24.06.11
15:36
Конкретизирую задачу. Есть колонка ресурса Расход. Мне необходимо рассчитать долю расхода для каждой строки, причем сделать это в запросе.
11 fisher
 
24.06.11
15:36
(0) Как это, по отдельности? Тут пофиг, это ж сомножители по сути.
(5) Так же, как и в Transact-SQL

Писатели типовых, судя по-всему, тоже не догадываются о записи таблиц через запятую. Вместо этого встречал СОЕДИНЕНИЕ ПО ИСТИНА.
12 Fragster
 
гуру
24.06.11
15:37
от перемены мест слагаемых сумма не поменяется.
13 Fragster
 
гуру
24.06.11
15:38
(11) кросс джоин с пустой таблицей выдаст пустую талицу, а левое по Истина - вполне себе не пустую
14 el-gamberro
 
24.06.11
15:39
(11,12) Согласен. Заморочился уже под конец недели с этими перемножениями :))
15 Ёпрст
 
гуру
24.06.11
15:39
(10) в скуле - как 2 пальца, через over как в снеговике, нужно подумать :)
16 el-gamberro
 
24.06.11
15:41
(15) А как насчет нарастающего итога в снеговике в запросе?:)
17 el-gamberro
 
24.06.11
15:42
Что за over в скуле?
18 rs_trade
 
24.06.11
15:42
(17) в BOL посмотри
19 Ёпрст
 
гуру
24.06.11
15:44
(16)можно, но те решения что видел на снеговике - изврат, за неимением нормальной поддержки языка t-sql..Почему они его не реализовали, как в 1срр, к примеру - не ясно..
Вот и мучайся с соединениями и "максимумами"..
20 Jstunner
 
24.06.11
15:44
(10) доли высчитывать лучше вне запроса. В запросах очень криво считает:


ВЫБРАТЬ
   Т.Р,
   Т.А / Т.Б КАК П
ИЗ
   (ВЫБРАТЬ
       1 КАК А,
       3 КАК Б,
       1 / 3 КАК Р) КАК Т
21 Ёпрст
 
гуру
24.06.11
15:46
Вообще, кто бы написал нормальный метапарсер для снеговика и типизацию - было бы супер..
Твори сам, что хочешь, используя весь струмент скуля.
А на выходе, скд всё скушает.
22 el-gamberro
 
24.06.11
15:47
(21) Уже есть интерпрайз интегратор
23 rs_trade
 
24.06.11
15:49
(22) он же только парсит недозапросы в t-sql. как он связан с использованием конструкций t-sql?
24 Jstunner
 
24.06.11
15:50
(19) платформа, обычно, работает без сервера баз данных
25 el-gamberro
 
24.06.11
15:53
(23) Как говорится и на том спасибо :)
26 rs_trade
 
24.06.11
16:01
(25) профайлером не сложно посмотреть. в EI бесит долгая обработка запроса, через журнал. да еще и платным сделали.
27 fisher
 
24.06.11
18:17
(13) Таки да... Левое было...