|
Даты в запросе (подобие метода дополнения) | ☑ | ||
---|---|---|---|---|
0
AaNnDdRrEeYy
18.07.12
✎
11:58
|
В запрос передаются два параметра &ДатаНачала и &ДатаКонца
&ДатаНачала = 01.01.2012 &ДатаКонца = 05.01.2012 как написать запрос результатом которого будет одна колонка 01.01.2012 02.01.2012 03.01.2012 04.01.2012 05.01.2012 метод дополнения в скд не предлагать, это нужно в запросе. |
|||
1
andrewks
18.07.12
✎
11:59
|
300 рэ
|
|||
2
Ненавижу 1С
гуру
18.07.12
✎
12:00
|
(1) а если есть регламентированный календарь?
|
|||
3
andrewks
18.07.12
✎
12:01
|
(2) ок, сделаю скидку - 250 рэ
|
|||
4
Rebelx
18.07.12
✎
12:01
|
или курсы валют...
|
|||
5
Kashemir
18.07.12
✎
12:01
|
Без регламентированного
ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, 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) <= &КонецПериода |
|||
6
ProgAL
18.07.12
✎
12:01
|
Сделай таблицу значений и выполни к ней запрос.
|
|||
7
AaNnDdRrEeYy
18.07.12
✎
12:01
|
(2)нет нету никакого календаря, только два параметра, никакие таблицы из базы данных не должны использоваться
|
|||
8
andrewks
18.07.12
✎
12:02
|
задание при приёме на работу?
|
|||
9
AaNnDdRrEeYy
18.07.12
✎
12:04
|
(5)Спасибо, работает.
(6)нет таблицу значений нельзя, теряется вся прелесть СКД. |
|||
10
AaNnDdRrEeYy
18.07.12
✎
12:04
|
(8)Нет, просто дурацкий отчет
|
|||
11
hhhh
18.07.12
✎
12:11
|
(9) да нет, как раз наоборот: с таблицами значений как раз по-настоящему начинаешь ощущать все прелести СКД.
|
|||
12
Нуф-Нуф
18.07.12
✎
12:13
|
через вложенную схему скд?
|
|||
13
AaNnDdRrEeYy
18.07.12
✎
12:38
|
(11)через таблицу делал когда надо было еще и период задавать, не просто дни добавлять а недели, месяцы или кварталы
теперь получается такая таблица Показатель Дата Уровень значение 1 01.01.2012 0 значение 1 02.01.2012 1 значение 1 03.01.2012 1 значение 1 04.01.2012 0 значение 1 05.01.2012 0 значение 2 01.01.2012 1 значение 2 02.01.2012 0 значение 2 03.01.2012 1 значение 2 04.01.2012 0 значение 2 05.01.2012 1 Нужно сделать увеличение Уровень на 1 для показателя "значение 2" что бы было так Показатель Дата Уровень значение 1 01.01.2012 0 значение 1 02.01.2012 1 значение 1 03.01.2012 1 значение 1 04.01.2012 0 значение 1 05.01.2012 0 значение 2 01.01.2012 2 значение 2 02.01.2012 0 значение 2 03.01.2012 2 значение 2 04.01.2012 0 значение 2 05.01.2012 2 показателей может быть много и уровень должен увеличиваться на 1. т.е для третьего 3 , четвертого 4 и т.д |
|||
14
Kashemir
18.07.12
✎
12:43
|
(13) Не понятно что ты хочешь, но подозреваю что тебе нужно пронумеровать каждое уникальное значение и собственно этот же номер можно использовать как нужное слагаемое
|
|||
15
AaNnDdRrEeYy
18.07.12
✎
12:52
|
Эти данные будут выводиться в диаграмму с типом график, по горизонтали даты по вертикали Уровень (это ресурс), Значение это точка.
если все записи в колонке Уровень будут иметь одинаковое значение (например 1) то они все сольються в одной линии а мне надо их как бы приподнять одна над другой. сейчас это выглядит так ___ __| | |____ надо так ___ |_ | __| |_|____ |
|||
16
AaNnDdRrEeYy
18.07.12
✎
12:53
|
[code]
___ __| | |____ надо так ___ |_ | __| |_|____ [/code] |
|||
17
Kashemir
18.07.12
✎
13:00
|
(15) Ну так у тебя же есть какой-то критерий/ии уникальности записи ? Пронумеруй и используй
|
|||
18
Maxus43
18.07.12
✎
13:03
|
зачем в КЗ? запрос (5) копия как раз статьи в КЗ
|
|||
19
Maxus43
18.07.12
✎
13:07
|
||||
20
Kashemir
18.07.12
✎
13:22
|
+(17) Пример на твоих данных
http://s014.radikal.ru/i329/1207/73/c5bc6e3fee75.jpg
|
|||
21
AaNnDdRrEeYy
18.07.12
✎
14:34
|
(20)ну почти
после выполнения запроса по строчке значение 1 01.01.2012 0 должно было остаться 0 Спасибо. |
|||
22
Kashemir
18.07.12
✎
14:53
|
(21) Так и осталось - просто упорядочивание показателей шло в другом порядке. Смени <= на >= и для конкретного примера будет +0 у показателя 1, а не у показателя 2
|
|||
23
AaNnDdRrEeYy
18.07.12
✎
15:12
|
Немножко переделал, вычисляю максимум по показателю и все уровни что меньше
обнуляю. Получилось то что нужно ВЫБРАТЬ Табличко.Показатель, Табличко.Дата, Табличко.Уровень ПОМЕСТИТЬ Табличко ИЗ &Табличко КАК Табличко ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Табличко.Показатель ПОМЕСТИТЬ УникальныеЗначенияПоказателей ИЗ Табличко КАК Табличко СГРУППИРОВАТЬ ПО Табличко.Показатель ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Табличко.Показатель, Табличко.Дата, Табличко.Уровень + ВложенныйЗапрос.ПорядковыйНомер - 1 КАК Поле1 ПОМЕСТИТЬ Промунерованная ИЗ Табличко КАК Табличко ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ КОЛИЧЕСТВО(УникальныеЗначенияПоказателей1.Показатель) КАК ПорядковыйНомер, УникальныеЗначенияПоказателей.Показатель КАК Показатель ИЗ УникальныеЗначенияПоказателей КАК УникальныеЗначенияПоказателей ВНУТРЕННЕЕ СОЕДИНЕНИЕ УникальныеЗначенияПоказателей КАК УникальныеЗначенияПоказателей1 ПО УникальныеЗначенияПоказателей.Показатель <= УникальныеЗначенияПоказателей1.Показатель СГРУППИРОВАТЬ ПО УникальныеЗначенияПоказателей.Показатель) КАК ВложенныйЗапрос ПО Табличко.Показатель = ВложенныйЗапрос.Показатель /////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Промунерованная.Показатель, МАКСИМУМ(Промунерованная.Уровень) КАК Уровень ПОМЕСТИТЬ МаксимумПоПоказателю ИЗ Промунерованная КАК Промунерованная СГРУППИРОВАТЬ ПО Промунерованная.Показатель ; ///////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Промунерованная.Показатель, Промунерованная.Дата, ВЫБОР КОГДА Промунерованная.Уровень < МаксимумПоПоказателю.Уровень ТОГДА 0 ИНАЧЕ Промунерованная.Уровень КОНЕЦ КАК Уровень, ИЗ Промунерованная КАК Промунерованная ЛЕВОЕ СОЕДИНЕНИЕ МаксимумПоПоказателю КАК МаксимумПоПоказателю ПО Промунерованная.Показатель = Промунерованная.Показатель |
|||
24
Kashemir
18.07.12
✎
15:19
|
Ммм ... если я правильно понял идею то достаточно было изменить поле расчета уровня в (20) вместо допиливания в виду (23)
Выбор когда Табличко.Уровень <> 0 Тогда Табличко.Уровень + ВложенныйЗапрос.ПорядковыйНомер - 1 иначе 0 конец КАК Поле1 |
|||
25
Kashemir
18.07.12
✎
15:24
|
Вобщем пробуй так
ВЫБРАТЬ
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |