|
v7: SQL, прямой запрос, периодический реквизит, получить первое значение после даты
| ☑ |
0
Eeakie
29.10.15
✎
18:35
|
Добрый вечер.
| case
| when $ЗаявкаСтроки.ПриходаНет = 1
| then $ЗаявкаСтроки.Количество * 'тут должно быть следующее значение периодического реквизита после Ж.date_time_iddoc'
| else $ЗаявкаСтроки.Количество * $ПоследнееЗначение.Товары.Прих_Цена(Товары.id, cast(left(Журнал.date_time_iddoc, 8) as datetime))
| end
| as СуммаПокупки
Как получить "следующее после Ж.date_time_iddoc значение периодического реквизита"?
|
|
1
Ёпрст
29.10.15
✎
18:38
|
писать ручонками запрос к _1sconst и там, что угодно, хоть последнее, хоть предпоследнее
|
|
2
Eeakie
29.10.15
✎
18:41
|
(1) Не сильно радужно..
|
|
3
orefkov
29.10.15
✎
19:00
|
Посмотри, во что $ПоследнееЗначение разворачивается, и сделай по аналогии.
http://www.1cpp.ru/docum/html/ODBC.html#id38
|
|
4
Eeakie
29.10.15
✎
19:22
|
(3) Честно говоря, не очень понял какую аналогию тут можно провести.
|
|
5
Eeakie
29.10.15
✎
19:38
|
(3) А нет, всё понял :) Спасибо.
|
|
6
orefkov
29.10.15
✎
19:52
|
(5)
Там скорее всего будет что-то типа (select top 1 ... where date < .... order by ... desc)
А тебе надо будет
(select top 1 ... where date > ... order by ... asc)
|
|
7
Eeakie
29.10.15
✎
19:55
|
(6) Да, так и сделал. Еще раз спасибо.
|
|
8
Eeakie
29.10.15
✎
19:56
|
(6) + только убрать "по убыванию" надо было.
|
|
9
orefkov
29.10.15
✎
20:20
|
(8)
А знак сравнения даты?
меньше на больше.
|
|
10
Eeakie
29.10.15
✎
20:22
|
(9)
| case
| when $ЗаявкаСтроки.ПриходаНет = 1
| then $ЗаявкаСтроки.Количество * (
| select top 1
| cast(Периодика.value as numeric(15, 3))
| from
| _1sconst as Периодика (nolock)
| where
| Периодика.id = 38 and
| Периодика.objid = Товары.id and
| Периодика.date > cast(left(Журнал.date_time_iddoc, 8) as datetime)
| order by
| Периодика.date, Периодика.time, Периодика.docid, Периодика.row_id
| )
| else $ЗаявкаСтроки.Количество * (
| select top 1
| cast(Периодика.value as numeric(15, 3))
| from
| _1sconst as Периодика (nolock)
| where
| Периодика.id = 38 and
| Периодика.objid = Товары.id and
| Периодика.date <= cast(left(Журнал.date_time_iddoc, 8) as datetime)
| order by
| Периодика.date desc, Периодика.time desc, Периодика.docid desc, Периодика.row_id desc
| )
| end
| as СуммаПокупки,
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой