|   |   | 
| 
 | Подскажите, как соединить два подзапроса | ☑ | ||
|---|---|---|---|---|
| 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) Да не за что. Конечно если была такая возможность, то лучше не мудрить и выгружать в две таблицы.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |