![]() |
![]() |
|
Регистр сведений. Срез последних | ☑ | ||
---|---|---|---|---|
0
Vitello
05.12.08
✎
15:17
|
Сильно не ругайтесь, знаю что боян, но никак не могу найти.
Есть регистр сведений с 3мя измерениями, срез последних возвращает несколько записей, мне нужно получить последнюю из них. Делаю так: ВЫБРАТЬ ПЕРВЫЕ 1 ОформленныеБСОСрезПоследних.Номер КАК Номер, ОформленныеБСОСрезПоследних.Серия КАК Серия, ОформленныеБСОСрезПоследних.Договор КАК Договор ИЗ РегистрСведений.ОформленныеБСО.СрезПоследних( , Вид.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыБСО.ПолисОсаго) И Наличие = ИСТИНА) КАК ОформленныеБСОСрезПоследних УПОРЯДОЧИТЬ ПО ОформленныеБСОСрезПоследних.Период УБЫВ Договор, Вид - измерения, все остальное реквизиты. Возвращает - пусто. |
|||
1
Vitello
05.12.08
✎
15:19
|
Забыл добавить, этот запрос - вложенный, связь идет по измерению договор.
|
|||
2
Шурик71
05.12.08
✎
15:26
|
> Договор, Вид - измерения, все остальное реквизиты.
реквизиты или ресурсы? |
|||
3
Vitello
05.12.08
✎
15:33
|
(2)Ресурсы.
|
|||
4
gr13
05.12.08
✎
15:35
|
а на какую дату ты срез делаешь?
|
|||
5
Mitriy
05.12.08
✎
15:37
|
(4) на сейчас...
|
|||
6
gr13
05.12.08
✎
15:38
|
а разве это на сейчас?
|
|||
7
Vitello
05.12.08
✎
15:40
|
(4)На конечную, параметром задается. Пробовал и указывать и не указывать, один хрен null, хотя записи точно есть.
|
|||
8
Mitriy
05.12.08
✎
15:40
|
(0) что значит последняя запись? если по периоду, то там все будут последними, это же срез последних...
|
|||
9
Vitello
05.12.08
✎
15:41
|
Там вот такой кусок:
... ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1 ОформленныеБСОСрезПоследних.Договор КАК Договор, ОформленныеБСОСрезПоследних.Номер КАК Номер, ОформленныеБСОСрезПоследних.Серия КАК Серия ИЗ РегистрСведений.ОформленныеБСО.СрезПоследних( &КонДата, Вид.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыБСО.ПолисОсаго) И Наличие = ИСТИНА) КАК ОформленныеБСОСрезПоследних УПОРЯДОЧИТЬ ПО ОформленныеБСОСрезПоследних.Период УБЫВ) КАК ОформленныеБСОСрезПоследних ПО ДопсДСП.ИсходныйДоговор = ОформленныеБСОСрезПоследних.Договор ... |
|||
10
Vitello
05.12.08
✎
15:42
|
(8)Ну мне возвращается несколько записей, хочу первую с конца, одну только.
|
|||
11
Mitriy
05.12.08
✎
15:43
|
(10) дык ты определись сначала, что в твоем понимании конец...
|
|||
12
gvido
05.12.08
✎
15:46
|
Вид.тип - это измерение или ресурс?
|
|||
13
Vitello
05.12.08
✎
15:50
|
(12)Вид - измерение.
(11)Я метод просто не знаю как правильно это сделать. Как мне получить последнюю запись из регистра по моим условиям? Регистр, периодический: 3 измерения: Договор, Вид, Объект. 3 ресурса: Серия,Номер,Наличие. |
|||
14
НЕА123
05.12.08
✎
15:51
|
(12) по ресурсу низя, кажется.
(9) вроде все правильно. КонДата - действетельно сегодня? Точно есть такие записи. |
|||
15
Mitriy
05.12.08
✎
15:51
|
(13) тебе надо наложить условие на все три измерения, тогда получишь одну-единственную запись...
|
|||
16
Vitello
05.12.08
✎
16:00
|
(14)Записи по периоду меньше чем КонДата
(15)Не могу на все 3. Вид разный может быть...Объект в пределах договора одинаков. |
|||
17
Mitriy
05.12.08
✎
16:03
|
(16) ну хорошо, смотри, на определенную дату у тебя выйдет, например, три записи, которые будут отличаться только ресурсами и измерением Вид (период у них будет совершенно одинаковый)... какая из этих записей, по-твоему, должна быть последней? Если ты не сможешь ответить, то чего ты хочешь от запроса?
|
|||
18
Vitello
05.12.08
✎
16:05
|
(17)Я понял, поэтому в (13) и спрашиваю, как подобные вещи делаются? К реальной таблице обратиться?
|
|||
19
НЕА123
05.12.08
✎
16:06
|
прав (15). Попробуй так.
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1 ОформленныеБСОСрезПоследних.Договор КАК Договор, ОформленныеБСОСрезПоследних.Номер КАК Номер, ОформленныеБСОСрезПоследних.Серия КАК Серия ИЗ РегистрСведений.ОформленныеБСО.СрезПоследних( &КонДата, ) КАК ОформленныеБСОСрезПоследних ГДЕ Вид.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыБСО.ПолисОсаго) И Наличие = ИСТИНА УПОРЯДОЧИТЬ ПО ОформленныеБСОСрезПоследних.Период УБЫВ) КАК ОформленныеБСОСрезПоследних ПО ДопсДСП.ИсходныйДоговор = ОформленныеБСОСрезПоследних.Договор ... |
|||
20
Mitriy
05.12.08
✎
16:07
|
да обращайся к чему хочешь, только сначала скажи, чем последняя запись отличается от непоследней в твоем понимании...
|
|||
21
Mort
05.12.08
✎
16:07
|
(18) Никак. В базе не хранится что ты последним ввел, курс доллара на 10 число или курс евро на 10 число.
|
|||
22
НЕА123
05.12.08
✎
16:07
|
(15) а он и так 1 получает (даже без первых)
|
|||
23
НЕА123
05.12.08
✎
16:09
|
+(22) ...или нет? пятница....
|
|||
24
Mitriy
05.12.08
✎
16:10
|
(23) пятница ))
|
|||
25
Vitello
05.12.08
✎
16:13
|
(20)
На примере, по одному договору: Период Вид Номер Серия Наличие 20.04.2007 1 123 А Истина 20.03.2008 1 123 А Ложь 20.03.2008 2 456 А Истина Хочу получить только эту запись: 20.03.2008 2 456 А Истина |
|||
26
Шурик71
05.12.08
✎
16:14
|
(17) У него не та проблема.
А проблема в том, что надо сначала получить срез по всем договорам и по нескольким видам, потом (!) соединить с договорами и только после этого (!) отобрать последний вид... Автор же в самой ВТ пытается отобрать последний вид, поэтому и не отрабатывает соединение по договорам (последняя запись по другому договору). (0) Не парься. Без извратов через срез последних не сделаешь. Делай запрос к самому рег. сведений, и сам организуй срез. |
|||
27
Mitriy
05.12.08
✎
16:15
|
(25) здесь я вижу, что можно отсортировать по Номер или по Серия Убыв и взять Первые 1
|
|||
28
Vitello
05.12.08
✎
16:16
|
(27)Номер и серия могут быть какие угодно, мне их получить надо.
|
|||
29
Mitriy
05.12.08
✎
16:18
|
(26) значит скорее всего неправильная постановка задачи, читай (26), м.б. это поможет... но взять последнее из того, что фиг знает как сортировать - невозможно, можно взять только то, что попадется...
|
|||
30
НЕА123
05.12.08
✎
16:30
|
(27) "первые" надо убирать, т.к. будет только 1 строка только с одним договором.
правда в (26). |
|||
31
Mitriy
05.12.08
✎
16:34
|
(29) к (28)
|
|||
32
Vitello
08.12.08
✎
11:59
|
Продолжаю тупить, уважаемые, помогите плз.
Необходимо из РС выдернуть последюю (по периоду) запись, полностью см. выше. Написал такой вложенный запрос: ... ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1 ОформленныеБСО.Договор КАК Договор, ОформленныеБСО.Серия КАК Серия, ОформленныеБСО.Номер КАК Номер ИЗ РегистрСведений.ОформленныеБСО КАК ОформленныеБСО ГДЕ ОформленныеБСО.Наличие И ОформленныеБСО.Вид.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыБСО.ПолисОсаго) УПОРЯДОЧИТЬ ПО ОформленныеБСО.Период УБЫВ) КАК ОформленныеБСО ПО ДопсДСП.ИсходныйДоговор = ОформленныеБСО.Договор ... Выводит все равно нулл. Убираю ПЕРВЫЕ и Сортировку - берет все записи. Я безнадежен? |
|||
33
hhhh
08.12.08
✎
12:08
|
(32) про ПЕРВЫЕ почитай. Вроде должна возвратить одну единственную строчку на весь запрос.
|
|||
34
Vitello
08.12.08
✎
13:07
|
(33)Так мне того и надо. Только мне не первую, а последнюю надо взять, какая попадется (исходя из условий ес-но).
|
|||
35
Vitello
08.12.08
✎
13:40
|
мдя...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |