0
Karambol
28.04.15
✎
11:56
|
Добрый день!
Подскажите, как решаются подобного рода задачи: есть документ, который фиксирует состояние контрагента. Нужно в отчете вывести информацию о количестве времени, в котором провел контрагент по состоянием. Например, исходные данные:
Контрагент1
1. Документ1 Дата 28.04.15 12:00 (Состояние1);
2. Документ2 Дата 28.04.15 14:00 (Состояние2);
3. Документ3 Дата 28.04.15 17:00 (Состояние3);
Как получить такие данные:
Контрагент1, Состояние1, 2часа
Контрагент1, Состояние2, 3часа
Контрагент1, Состояние3, текущее
|
|
3
xaozai
28.04.15
✎
12:06
|
(0) Запросом. В первом приближении, как-то так:
ВЫБРАТЬ
"Документ1" КАК Документ,
"Состояние1" КАК Состояние,
ДАТАВРЕМЯ(2015, 4, 28, 12, 0, 0) КАК Время
ПОМЕСТИТЬ Данные
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Документ2",
"Состояние2",
ДАТАВРЕМЯ(2015, 4, 28, 14, 0, 0)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Документ3",
"Состояние3",
ДАТАВРЕМЯ(2015, 4, 28, 17, 0, 0)
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Данные.Состояние КАК Состояние,
МИНИМУМ(РАЗНОСТЬДАТ(Данные.Время, Данные1.Время, ЧАС)) КАК СколькоЧасов
ИЗ
Данные КАК Данные
ЛЕВОЕ СОЕДИНЕНИЕ Данные КАК Данные1
ПО Данные.Время < Данные1.Время
СГРУППИРОВАТЬ ПО
Данные.Состояние
|
|