Имя: Пароль:
1C
1С v8
Соединить таблицы со смещением
0 extrim-style
 
03.02.14
13:10
Есть таблица с отсортированной колонкой дат:

01.03.2013
07.05.2013
11.09.2013
15.12.2013

Нужно добавить к ней эту же колонку со смещением в одну строку:

01.03.2013   07.05.2013
07.05.2013   11.09.2013
11.09.2013   15.12.2013
15.12.2013   ДатаКон

Как это сделать в запросе?
1 Wobland
 
03.02.14
13:11
нумерация строк в запросе?
2 Wobland
 
03.02.14
13:12
а ещё можно без соединения, над результатом запроса изгаляться
3 mistеr
 
03.02.14
13:14
Поиск "срез последних на каждый день"
4 butterbean
 
03.02.14
13:16
ВЫБРАТЬ
Таблица.Дата, ВложЗапрос.Смещение
ИЗ Таблица
ЛЕВОЕ СОЕДИНЕНИЕ
(Т1.Дата КАК Дата,МИНИМУМ(Т2.Дата) КАК Смещение
ИЗ Таблица КАК Т1
ЛЕВОЕ СОЕДИНЕНИЕ Таблица КАК Т2
ПО Т1.Дата < Т2.Дата СГРУППИРОВАТЬ ПО Т1.Дата) КАК ВложЗапрос            ПО ВложЗапрос.Дата = Таблица.Дата
5 Sorm
 
03.02.14
13:27
(4) Имхо, проще так
ВЫБРАТЬ
    Таблица.Дата,
    МИНИМУМ(Таблица2.Дата) КАК Дата1
ИЗ
    Таблица КАК Таблица
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Таблица КАК Таблица2
        ПО Таблица.Дата < Таблица2.Дата

СГРУППИРОВАТЬ ПО
    Таблица.Дата
6 Sorm
 
03.02.14
13:30
(4) А, сорри, все, понял. Да, все верно.
7 extrim-style
 
03.02.14
13:41
(4) спасибо
8 К_Дач
 
03.02.14
13:58
ВЫБРАТЬ
    ТабДаты1.Дата
ПОМЕСТИТЬ ТабДаты1
ИЗ
    &ТабДаты КАК ТабДаты1
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТабДаты2.Дата
ПОМЕСТИТЬ ТабДаты2
ИЗ
    &ТабДаты КАК ТабДаты2
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТабДаты1.Дата КАК Дата1,
    ТабДаты2.Дата КАК Дата КАК Дата2
ИЗ
    ТабДаты1 КАК ТабДаты1
        ПОЛНОЕ СОЕДИНЕНИЕ ТабДаты2 КАК ТабДаты2
        ПО ТабДаты1.Дата < ТабДаты2.Дата

СГРУППИРОВАТЬ ПО
    ТабДаты1.Дата
9 К_Дач
 
03.02.14
13:59
Только не "ПОЛНОЕ", а "ЛЕВОЕ", разумеется