|
Таблица периодов по неделям | ☑ | ||
---|---|---|---|---|
0
r1000
01.03.15
✎
14:59
|
Использую распространенный набор данных. Затем соединяю по параметру и вывожу данные периодами. Как сделать неделю ? РазностьДат() не может использовать НЕДЕЛЯ ?
ВЫБРАТЬ ВЫБОР КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.День) ТОГДА ДОБАВИТЬКДАТЕ(&Дата1, ДЕНЬ, aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d) ИНАЧЕ ВЫБОР КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Неделя) ТОГДА ДОБАВИТЬКДАТЕ(&Дата1, НЕДЕЛЯ, aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d) ИНАЧЕ ВЫБОР КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Декада) ТОГДА ДОБАВИТЬКДАТЕ(&Дата1, ДЕКАДА, aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d) ИНАЧЕ ВЫБОР КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Квартал) ТОГДА ДОБАВИТЬКДАТЕ(&Дата1, КВАРТАЛ, aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d) ИНАЧЕ ВЫБОР КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Год) ТОГДА ДОБАВИТЬКДАТЕ(&Дата1, ГОД, aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d) ИНАЧЕ ВЫБОР КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Месяц) ТОГДА ДОБАВИТЬКДАТЕ(&Дата1, МЕСЯЦ, aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d) ИНАЧЕ ВЫБОР КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Полугодие) ТОГДА ДОБАВИТЬКДАТЕ(&Дата1, ПОЛУГОДИЕ, aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d) ИНАЧЕ ДОБАВИТЬКДАТЕ(&Дата1, МЕСЯЦ, aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d) КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КАК Период {ВЫБРАТЬ Период} ИЗ (ВЫБРАТЬ 0 КАК a ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК aa ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК b ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК bb ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК c ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК cc ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК d ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК dd ПО (ИСТИНА) ГДЕ aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d <= ВЫБОР КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.День) ТОГДА РАЗНОСТЬДАТ(&Дата1, &Дата2, ДЕНЬ) ИНАЧЕ ВЫБОР КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Месяц) ТОГДА РАЗНОСТЬДАТ(&Дата1, &Дата2, МЕСЯЦ) ИНАЧЕ ВЫБОР КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Квартал) ТОГДА РАЗНОСТЬДАТ(&Дата1, &Дата2, КВАРТАЛ) ИНАЧЕ ВЫБОР КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Год) ТОГДА РАЗНОСТЬДАТ(&Дата1, &Дата2, ГОД) КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ |
|||
1
Wobland
01.03.15
✎
15:26
|
ять.. а как выглядит желаемый результат?
|
|||
2
r1000
01.03.15
✎
15:32
|
Например, продажи номенклатуры по неделям.
|
|||
3
Euroset1
01.03.15
✎
15:47
|
создай таблицу соответствий интервалов дат периодам, программно процедурой. И джойни свои исходные данные с этой ВТ.
Например Периодичность, дата1, дата2, Представление - вот эти колонки сформируй в таблице программно. А в запросе будетшь делать соединение по условию &Периодичность = ВТ.Периодичность и дата между дата1 и дата2, берешь поле представление. По нему группируешь, вот тебе и счастье. И кстати работать должно быстрее |
|||
4
yavasya
01.03.15
✎
19:15
|
(4) регламентированный производствеенный календарь может поможет?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |