Имя: Пароль:
1C
1С v8
Как запросом разделить одну большую таблицу
0 Trotter
 
21.09.16
12:52
Как запросом разделить одну большую таблицу на несколько маленьких, а потом их склеить ?

Дано:

id  Товар   код

a   Товар1   1
a   Товар2   2
b   Товар1   1
b   Товар2   2
c   Товар1   1
c   Товар2   2

Нужно

id  Товар  Код   id  Товар  Код   id  Товар  Код
a   Товар1  1    b   Товар1  1    с   Товар1  1
a   Товар2  2    b   Товар2  2    с   Товар2  2
1 DrShad
 
21.09.16
12:54
никак
2 leonidk
 
21.09.16
12:55
Если количество ID ( маленьких таблиц) известно то можно. Иначе только программное составление запроса.
3 DrZombi
 
гуру
21.09.16
12:56
(0) Группировка по колонкам

Вы может про СКД? :)
4 Trotter
 
21.09.16
12:57
(3) не СКД ) нужно выбрать так вот данные, а потом сравнить на не соответствие в колонках
5 Vladal
 
21.09.16
12:57
Была давно тема, как разделить номенклатуру в две колонки в запросе.
Посмотри http://catalog.mista.ru/public/100854/
Там и на СКД и без СКД.
6 gitotuta
 
21.09.16
12:58
Это склейка по номеру строки
7 DrZombi
 
гуру
21.09.16
13:01
(4) Напиши СКД. Потом выгрузишь результат в ТЗ :)
8 PiterPrg
 
21.09.16
13:04
(2) Разумеется программное.
А иначе как?
Колонок в запросе = 3 * количество различных ID

Ну или (7) - прекрасный вариант
9 leonidk
 
21.09.16
13:07
(8) Ну мало ли, может быть у автора вариантов id 3.
Итого 3 виртуальные таблицы соединить в запросе и готово.
10 Trotter
 
21.09.16
13:10
(9) Пример можно ?)
11 Очевидно
 
21.09.16
13:15
(10) это всё "Велосипедные решения"- Если количество id - значение переменное. Если их всегда 3 тогда прокатит ... (Запрос не умеет создавать новые поля/колонки исходя из расчетных значений. Все поля/колонки должны быть прописаны в запросе).
12 ovrfox
 
21.09.16
13:32
К-во таблиц:
Выбрать Различные ID
Поместить ВсеИД
ИЗ Таблица;
--К-во пар
Выбрать а.ID как ИДЛев, b.ID ИДПрав
поместить пары
ИЗ ВсеИД а, ВсеИД в;
Выбрать ИДЛев, ИДПрав, ...рез сравнения...
ИЗ Пары
Соединить Таблица Лев По ИДЛев = Лев.ID
Соединить Таблица Прав По ИДПрав = Прав.ID
Где Лев.Товар = Прав.Товар
13 VladZ
 
21.09.16
13:37
(0) Зачем?
14 iceman2112
 
21.09.16
13:41
(13) Пишет сравнить нужно id чтоли. Не ясно чем ему группировка по товару или код не устраивает. Потом обходи - сравнивай
15 leonidk
 
21.09.16
13:50
(10) Наверно как то так
ВЫБРАТЬ
    Товары.ИД,
    Товары.Товар,
    Товары.Код
ПОМЕСТИТЬ ИД1
ИЗ
    Справочник.Товары КАК Товары
ГДЕ
    Товары.ИД = &ИД1
//////////////////////////////////////////////////
ВЫБРАТЬ
    Товары.ИД,
    Товары.Товар,
    Товары.Код
ПОМЕСТИТЬ ИД2
ИЗ
    Справочник.Товары КАК Товары
ГДЕ
    Товары.ИД = &ИД2
//////////////////////////////////////////////////
ВЫБРАТЬ
    ....
////////////////////////////
ВЫБРАТЬ
    ИД1.ИД,
    ИД1.Товар,
    ИД1.Код,
    ИД2.ИД КАК ИД2,
    ИД2.Товар КАК Товар2,
    ИД2.Код КАК Код2,
        ....
ИЗ
    ИД1 КАК ИД1
        ПОЛНОЕ СОЕДИНЕНИЕ ИД2 КАК ИД2
        ПО ИД1.Код = ИД2.Код
        ПОЛНОЕ СОЕДИНЕНИЕ ИД3 КАК ИД3
        ПО ИД1.Код = ИД3.Код


С соединениями/групировками поиграться для получения наилучшего результата
16 Trotter
 
21.09.16
14:17
спасибо всё получилось как нужно )
17 Trotter
 
21.09.16
14:18
(15) спасибо.