|
Подскажите, как соединить два подзапроса | ☑ | ||
---|---|---|---|---|
0
xaozai
01.11.12
✎
13:21
|
Для примера, такой запрос:
ВЫБРАТЬ
В результате получается: Орг1 1
А нужно: Орг1 1 Орг3 1
Как сделать? |
|||
1
NcSteel
01.11.12
✎
13:24
|
Объеденить.
|
|||
2
xaozai
01.11.12
✎
13:24
|
(1) Как?
|
|||
3
х86
01.11.12
✎
13:25
|
баян
сгруппировать |
|||
4
shuhard
01.11.12
✎
13:25
|
(2) бла бла бла ОБЪЕДИНИТЬ ВСЕ бла бла бла
|
|||
5
xaozai
01.11.12
✎
13:25
|
(3) Можно пример?
|
|||
6
fisher
01.11.12
✎
13:31
|
Нетривиальная задача. По сути, тебе нужно соединение по номеру строки.
|
|||
7
xaozai
01.11.12
✎
13:34
|
(4) Так не получается.
|
|||
8
xaozai
01.11.12
✎
13:35
|
Может в СКД как-то можно сделать?
|
|||
9
m-serg74
01.11.12
✎
13:38
|
(0) может
"ПО ВложенныйЗапрос.Организация = ВложенныйЗапрос1.Организация" убрать нафик |
|||
10
xaozai
01.11.12
✎
13:39
|
(9) Тогда всё задваивается.
|
|||
11
m-serg74
01.11.12
✎
13:39
|
что все?
|
|||
12
xaozai
01.11.12
✎
13:41
|
(11)
Орг1 1 Орг3 1
|
|||
13
fisher
01.11.12
✎
13:48
|
См (6).
Нумеруешь строки в своих подзапросах и соединяешь их по номеру строки. Как нумеровать - есть на просторах. Там декартово произведение с условием и группировкой. Короче, красивостью не пахнет, как и сама задача. Ресурсоемко. Вывод в несколько колонок - задача постобработки. На реляционную аглебру плохо ложится. |
|||
14
wylde
01.11.12
✎
14:25
|
(13) С нумерацией строк не все так просто выйдет из-за "ВЫБРАТЬ ПЕРВЫЕ" в каждом вложенном запросе (0)
|
|||
15
wylde
01.11.12
✎
14:48
|
Задача не такая простая как кажется на первый взгляд.
Из-за ВЫБРАТЬ ПЕРВЫЕ и УПОРЯДОЧИТЬ ПО возникают проблемы с нумерацией. В общем вот такое решение получилось. ВЫБРАТЬ ВложенныйЗапрос.Организация, ВложенныйЗапрос.Сумма, ВложенныйЗапрос1.Организация КАК Организация1, ВложенныйЗапрос1.Сумма КАК Сумма1 ИЗ (ВЫБРАТЬ ПЕРВЫЕ 2 ЗаказПокупателя.Организация КАК Организация, 1 КАК Сумма, СУММА(ВложенныйЗапрос.НомерСтрокиЗапроса) КАК НомерСтрокиЗапроса ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ЗаказПокупателя.Ссылка КАК Ссылка, 1 КАК НомерСтрокиЗапроса ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя) КАК ВложенныйЗапрос ПО ЗаказПокупателя.Ссылка >= ВложенныйЗапрос.Ссылка СГРУППИРОВАТЬ ПО ЗаказПокупателя.Организация, ЗаказПокупателя.Дата УПОРЯДОЧИТЬ ПО ЗаказПокупателя.Дата) КАК ВложенныйЗапрос ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 2 ЗаказПокупателя.Организация КАК Организация, 1 КАК Сумма, СУММА(ВложенныйЗапрос.НомерСтрокиЗапроса) КАК НомерСтрокиЗапроса ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ЗаказПокупателя.Ссылка КАК Ссылка, 1 КАК НомерСтрокиЗапроса ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя) КАК ВложенныйЗапрос ПО ЗаказПокупателя.Ссылка <= ВложенныйЗапрос.Ссылка СГРУППИРОВАТЬ ПО ЗаказПокупателя.Дата, ЗаказПокупателя.Организация УПОРЯДОЧИТЬ ПО ЗаказПокупателя.Дата УБЫВ, НомерСтрокиЗапроса) КАК ВложенныйЗапрос1 ПО ВложенныйЗапрос.НомерСтрокиЗапроса = ВложенныйЗапрос1.НомерСтрокиЗапроса |
|||
16
fisher
01.11.12
✎
14:59
|
(15) Ну и последний штрих, раз ты такой неленивый - отсортируй по названию организации (с учетом возможности одинаковых названий)
|
|||
17
wylde
01.11.12
✎
15:04
|
думаю того что есть достаточно )
|
|||
18
fisher
01.11.12
✎
15:12
|
(17) Стопудово недостаточно. К гадалке не ходи - ТС хочет это в отчет вывести в правильном порядке.
|
|||
19
wylde
01.11.12
✎
15:17
|
(18) ок, ждем что скажет ТС
|
|||
20
xaozai
01.11.12
✎
16:51
|
wylde, спасибо!
Я решил не заморачиваться и выгрузить один запрос в одну ТЗ, второй - в другую и соединить потом таблички... |
|||
21
wylde
01.11.12
✎
16:57
|
(20) Да не за что. Конечно если была такая возможность, то лучше не мудрить и выгружать в две таблицы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |