Имя: Пароль:
1C
1С v8
Как получить запросом таблицу вида...
0 kuromanlich
 
27.09.13
16:33
Имеется:

таблица есть
05  04
10  09
20  19
25  24

таблица надо
-  04
05  09
10  19
20  24
25  -
1 Лефмихалыч
 
27.09.13
16:41
ищи по форуму "Нумерация строк в запросе" и "Нарастающий итог в запросе"
2 Fragster
 
модератор
27.09.13
17:00
нумерация не нужна
3 Fragster
 
модератор
27.09.13
17:00
(0) разница всегда = 1?
4 kuromanlich
 
27.09.13
17:21
(3) да
5 kuromanlich
 
27.09.13
17:23
(2) по идее добившись нумерации можно связать с учетом того, что нужное находится в строке с номером +1
6 Зойч
 
27.09.13
17:25
выбрать Поле1, Поле1 - 1
7 Dzenn
 
гуру
27.09.13
17:27
кмк никак. Юзай таблицы значений
8 mikecool
 
27.09.13
17:28
да, без rowcount() имхо не справиться
9 Fragster
 
модератор
27.09.13
17:31
(4) полное соединение само с собой по условию таб1.поле1 = таб2.поле2-1
10 Fragster
 
модератор
27.09.13
17:31
ну, или как-то так
11 discovery science
 
27.09.13
17:35
да, часто такое надо
только все равно потом что-то допиливать
12 discovery science
 
27.09.13
17:38
а оно всегда так?
05  04
10  09
20  19
25  24

1*5 5*1-1
2*5 5*2-1
4*5 5*2-1
5*5 5*5-1

?
13 discovery science
 
27.09.13
17:39
т.е. чего 3 пропущено?
1*5 5*1-1
2*5 5*2-1
4*5 5*4-1
5*5 5*5-1
14 kuromanlich
 
27.09.13
17:40
(12) (13) нет никакой связи, просто набирал так
15 discovery science
 
27.09.13
17:42
(14) угу, сдвинуть запросом
16 discovery science
 
27.09.13
17:57
(9) да, только нужна нумерация
17 Fragster
 
модератор
27.09.13
17:58
(16) не нужна
18 PVV65
 
27.09.13
18:07
(0) Это такой прикол - все задачи решать запросом?
19 Fragster
 
модератор
27.09.13
18:08
ВЫБРАТЬ
    4 КАК Поле1,
    5 КАК Поле2
ПОМЕСТИТЬ Данные

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    9,
    10

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    20,
    21
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Данные1.Поле2 КАК Поле1,
    Данные2.Поле1 КАК Поле2
ИЗ
    Данные КАК Данные1
        ПОЛНОЕ СОЕДИНЕНИЕ Данные КАК Данные2
        ПО (Данные2.Поле1 В
                (ВЫБРАТЬ ПЕРВЫЕ 1
                    Данные.Поле1
                ИЗ
                    Данные
                ГДЕ
                    Данные.Поле1 > Данные1.Поле1
                УПОРЯДОЧИТЬ ПО
                    Данные.Поле1))

УПОРЯДОЧИТЬ ПО
    Поле1
20 kuromanlich
 
27.09.13
18:14
(19) пробовал так сначала, видать с условием перемудрил, не работало. попробую сейчас еще раз
21 PVV65
 
27.09.13
18:18
ВЫБРАТЬ
    4 КАК Поле1,
    5 КАК Поле2
ПОМЕСТИТЬ Данные

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    9,
    10

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    20,
    21
;





Что это?
22 kuromanlich
 
27.09.13
18:19
(21) создание тестовой таблицы для работы второго пакета в запросе
23 Fragster
 
модератор
27.09.13
18:26
вообще это извращение, правильнее исходные таблицы получить в более "прямом" виде
24 Fragster
 
модератор
27.09.13
18:26
кстати, в (19) второй запрос можно сделать таким:

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Данные1.Поле2 КАК Поле1,
    МИНИМУМ(Данные2.Поле1) КАК Поле2
ИЗ
    Данные КАК Данные1
        ПОЛНОЕ СОЕДИНЕНИЕ Данные КАК Данные2
        ПО (Данные2.Поле1 > Данные1.Поле1)

СГРУППИРОВАТЬ ПО
    Данные1.Поле2
25 kuromanlich
 
27.09.13
18:28
(23) зуп "не очень оптимально" реализовал хранение информации...
26 discovery science
 
27.09.13
18:29
(24) шаман
27 discovery science
 
27.09.13
18:39
(18) если вот до 7-ки изучать запросы было где, такие вопросы бы не становились
28 discovery science
 
27.09.13
18:51
а теперь вот так :)

таблица есть
05  04
10  03
20  19
25  22

таблица надо
-  04
05  03
10  19
20  22
25  -
29 kuromanlich
 
27.09.13
19:00
(28) не мой случай
30 Fragster
 
модератор
27.09.13
19:01
(28) тогда нумеруй. или изучай, возможно из виртуальных таблиц таки можно правильные данные сразу получить
31 kuromanlich
 
27.09.13
19:02
Fragster, благодарю

метод надо обрамить будет и в базу знаний
32 discovery science
 
27.09.13
19:03
(31) его бы сразу универсальным, чтобы во второй таблице не строго меньше, на все случаи жизни
33 Fragster
 
модератор
27.09.13
19:05
(32) если одна из колонок упорядочена - то никаких проблем
34 discovery science
 
27.09.13
19:13
(33) в (28) то одна колонка упорядочена, то твой вариант уже не пашет
35 Fragster
 
модератор
27.09.13
19:17
(34) все пашет. у меня в (19) вариант, когда упорядочена колонка 4,9,20 (поле1, т.е. правая в примере). Переделать пол дуругю колонку догадаешься?
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс