|
как соединить в запросе выборку дат и выборку доков по полученым датам | ☑ | ||
---|---|---|---|---|
0
lim9
04.12.13
✎
16:51
|
делаю так:
ВЫБРАТЬ Договоры.Договор, Договоры.ДатаНачалаОтср, ПолучениеСуммы.СуммаПросрочкиИт КАК СуммаПросрочкиИт1, Договоры.Договор.Владелец ИЗ (ВЫБРАТЬ ДоговорыКонтрагентов.Ссылка КАК Договор, ДоговорыКонтрагентов.ОтсрочкаДней КАК ОтсрочкаДней, &тд КАК тд, ДОБАВИТЬКДАТЕ(&тд, ДЕНЬ, -ДоговорыКонтрагентов.ОтсрочкаДней) КАК ДатаНачалаОтср ИЗ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов ГДЕ ДоговорыКонтрагентов.Отсрочка = ИСТИНА) КАК Договоры ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ Дима.Период КАК дата1, Дима.ДоговорКонтрагента КАК ДоговорКонтрагента, СУММА(Дима.Сумма) КАК СуммаПросрочкиИт ИЗ РегистрНакопления.Дима КАК Дима ГДЕ Дима.фОпл = ЛОЖЬ СГРУППИРОВАТЬ ПО Дима.Период, Дима.ДоговорКонтрагента) КАК ПолучениеСуммы ПО Договоры.Договор = ПолучениеСуммы.ДоговорКонтрагента И Договоры.тд >= ПолучениеСуммы.дата1 И Договоры.ДатаНачалаОтср <= ПолучениеСуммы.дата1 |
|||
1
lim9
04.12.13
✎
16:52
|
тд = ТекущаяДата()
|
|||
2
lim9
04.12.13
✎
16:53
|
но данные не вытягивает. а доки за этот период есть в этом регистре.
|
|||
3
Halyavnik
04.12.13
✎
16:56
|
А если убрать
И Договоры.ДатаНачалаОтср <= ПолучениеСуммы.дата1 что получится? |
|||
4
lim9
04.12.13
✎
16:58
|
т.е. идея такая, берем договор, вычисляем две даты, одна=текущей, вторая=текущая - кол.дней указанных в договоре, и нужно получить список доков попавших между этими датами.
|
|||
5
lim9
04.12.13
✎
17:02
|
(3) результат есть, но он вытянул все документы, без ограничения датой2 (в запросе Договоры.ДатаНачалаОтср)
|
|||
6
Halyavnik
04.12.13
✎
17:03
|
вывести и посмотреть, чему равны
Договоры.ДатаНачалаОтср, ПолучениеСуммы.дата1 - в теории по выведенным значениям будет всё ясно. может, действительно, нет таких документов. |
|||
7
Fram
04.12.13
✎
17:09
|
вот из этого
ДОБАВИТЬКДАТЕ(&тд, ДЕНЬ, -ДоговорыКонтрагентов.ОтсрочкаДней) КАК ДатаНачалаОтср следует что ДатаНачалаОтср всегда < тд, если конецно отсрочка не отрицательная. так что выборка всегда будет пустой |
|||
8
m-serg74
04.12.13
✎
17:10
|
(7) с чего бы
|
|||
9
Fram
04.12.13
✎
17:11
|
(8)
И Договоры.тд >= ПолучениеСуммы.дата1 И Договоры.ДатаНачалаОтср <= ПолучениеСуммы.дата1 |
|||
10
m-serg74
04.12.13
✎
17:11
|
сегодня - 3дня
здесь документы сегодня |
|||
11
m-serg74
04.12.13
✎
17:13
|
// текущая дата больше даты документов
Договоры.тд >= ПолучениеСуммы.дата1 // текущая дата минус дни отсрочки меньше даты документов Договоры.ДатаНачалаОтср <= ПолучениеСуммы.дата1 |
|||
12
lim9
04.12.13
✎
17:13
|
Договоры.ДатаНачалаОтср=23.11.2013
Договоры.тд =04.12.2013 мое услови и говорит: 04.12.2013 >= ПолучениеСуммы.дата1 23.11.2013 <= ПолучениеСуммы.дата1 что не так? |
|||
13
Fram
04.12.13
✎
17:14
|
(11) (12) сорри.. под вечер в голове помутнение
|
|||
14
m-serg74
04.12.13
✎
17:14
|
(12) забей, не в этом дело, а нужные документы проведены?
|
|||
15
lim9
04.12.13
✎
17:15
|
(14) да конечно, в журнале регистра все есть!
|
|||
16
m-serg74
04.12.13
✎
17:15
|
(13) тоже забей)))
|
|||
17
lim9
04.12.13
✎
17:16
|
Друзья, может запрос не правильно написан!
как вообще правильно соединить? |
|||
18
Halyavnik
04.12.13
✎
17:16
|
а условие Дима.фОпл = ЛОЖЬ - выполняется?
|
|||
19
AlexITGround
04.12.13
✎
17:18
|
(0) разбей запрос на части, засунь ограничение - оцени ситуацию, в конце найдешь свой косяк
|
|||
20
m-serg74
04.12.13
✎
17:19
|
(17) а запрос то не весь привел
|
|||
21
m-serg74
04.12.13
✎
17:20
|
(20) сорри теперь я затупил)))
|
|||
22
lim9
04.12.13
✎
17:20
|
(18) да
переделал прямо на документы, минуя регистр: ВЫБРАТЬ Договоры.Договор, Договоры.ДатаНачалаОтср, Договоры.Договор.Владелец, Договоры.тд, ПолучениеСуммы.Сумма ИЗ (ВЫБРАТЬ ДоговорыКонтрагентов.Ссылка КАК Договор, ДоговорыКонтрагентов.ОтсрочкаДней КАК ОтсрочкаДней, &тд КАК тд, ДОБАВИТЬКДАТЕ(&тд, ДЕНЬ, -ДоговорыКонтрагентов.ОтсрочкаДней) КАК ДатаНачалаОтср ИЗ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов ГДЕ ДоговорыКонтрагентов.Отсрочка = ИСТИНА) КАК Договоры ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РеализацияТоваровУслуг.ДоговорКонтрагента КАК ДоговорКонтрагента, РеализацияТоваровУслуг.Дата КАК Дата1, СУММА(РеализацияТоваровУслуг.СуммаДокумента) КАК Сумма ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг СГРУППИРОВАТЬ ПО РеализацияТоваровУслуг.ДоговорКонтрагента, РеализацияТоваровУслуг.Дата) КАК ПолучениеСуммы ПО Договоры.Договор = ПолучениеСуммы.ДоговорКонтрагента И Договоры.тд >= ПолучениеСуммы.Дата1 И Договоры.ДатаНачалаОтср <= ПолучениеСуммы.Дата1 |
|||
23
lim9
04.12.13
✎
17:21
|
не излечило
|
|||
24
lim9
04.12.13
✎
17:23
|
поле сумма=0
|
|||
25
Halyavnik
04.12.13
✎
17:24
|
А нельзя ли СРАЗУ отобрать из таблицы Дима все документы, которые:
Дима.фОпл = ЛОЖЬ И Дима.ДоговорКонтрагента.Отсрочка И Дима.Период МЕЖДУ &тд И ДобавитьКДате( &тд, ДЕНЬ, -Дима.ДоговорКонтрагента.ОтсрочкаДней) ЗЫ: На Дима.фОпл желательнен индекс, как и на ДоговорКонтрагента.Отсрочка. |
|||
26
m-serg74
04.12.13
✎
17:25
|
(25) только между начало и конец местами наверное поменять
|
|||
27
lim9
04.12.13
✎
17:25
|
(25) вот эта мысль, счас...
|
|||
28
lim9
04.12.13
✎
17:36
|
Урв! Спасибо ВАМ огромное!
|
|||
29
AlexITGround
04.12.13
✎
17:38
|
(28) так...между делом, ты на клюшках кодировал?
|
|||
30
Halyavnik
04.12.13
✎
17:39
|
и не надо использовать конструкции типа:
ВЫБРАТЬ &тд КАК ТД ИЗ бла-бла-бла КАК ЙЙЙ ГДЕ ЙЙЙ.тд >= ЙЙЙ.Дата Можно ГДЕ &тд >= ЙЙЙ.Дата |
|||
31
lim9
04.12.13
✎
17:41
|
точно
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |