|
СКД: связи наборов данных | ☑ | ||
---|---|---|---|---|
0
Scorpion_1986
10.04.13
✎
10:52
|
Сделал 2 набора данных. 1 набор получаю дату, транспортное средство
2 набор регистр сведений срез последних получаю Дату, Трансп. средство подразделение. (параметр в регистре Дата,Трансп. средство ) Нужно по дате из первого набора получить подразделение(на эту дату) из второго набора. Связался по дате и трансп. средству и указал параметры. Но вытягивает мне только те подразделения в которых дата из первого набора совпадает с датой из воторого. Подскажите что делать.... |
|||
1
cw014
10.04.13
✎
10:56
|
А что нужно то?
|
|||
2
cw014
10.04.13
✎
10:57
|
"Нужно по дате из первого набора получить подразделение(на эту дату) из второго набора."
"Но вытягивает мне только те подразделения в которых дата из первого набора совпадает с датой из воторого." Как бэ задача решена... |
|||
3
Scorpion_1986
10.04.13
✎
10:59
|
Набор первый: Заправки автомобиля.
Набор второй: Срез последних перемещения ТС между подразделениями Задача: Получить подразделение которое было на дату заправки. И если заправка 16.01.13 а перемещение было 12.01.13 - то не выводит ничего, а елси и заправка 16.01.13 и перемещения 16.01.13 то выводит подразделение |
|||
4
Scorpion_1986
10.04.13
✎
11:01
|
Была проблема в датах еще. Заправки у меня ДатаВремя, а перемещение Дата.
Я взял дату заправки НачалоПериода, день - то выводить если дата совпадает, а если дата изи второго набора меньше то не выводит |
|||
5
cw014
10.04.13
✎
11:01
|
(3) Ну тут ты конечно загнул. Тебе придется тут уже проверять на вхождение в промежуток между предыдущей заправкой и следующей заправкой
|
|||
6
Scorpion_1986
10.04.13
✎
11:02
|
не надо никокого промежутка. Просто я получаю дату заправки и нужно передать во второй набор(а во втором срез последних). Тоесть получаэться срез последних на дату заправки
|
|||
7
cw014
10.04.13
✎
11:03
|
То есть первый набор данных тебе кроме того, что дату заправки и автомобиль выбрал, нужно еще сравнить с самой собой по автомобилю и максимальной датой на сравнение что максимальная дата < текущей даты
|
|||
8
cw014
10.04.13
✎
11:04
|
(6) Дата из второго набора - это измерение?
|
|||
9
toypaul
гуру
10.04.13
✎
11:04
|
связь как бы подразумевает, что связанные реквизиты должна совпадать. или я что-то не понимаю.
обязательно через наборы делать? может через временную таблицу будет лучше. |
|||
10
cw014
10.04.13
✎
11:05
|
+(8) Хотя даже если измерение - ничего это не даст
|
|||
11
cw014
10.04.13
✎
11:06
|
+(8) нужно ее наверное дублировать в ресурс тогда
|
|||
12
cw014
10.04.13
✎
11:08
|
Хотя задачка интересная, но два набора тут не нужно
|
|||
13
Scorpion_1986
10.04.13
✎
11:08
|
(8) Дата - жто просто период регистра, ТС - измерение
|
|||
14
Scorpion_1986
10.04.13
✎
11:09
|
Ок, ну если не набором то как получить?
|
|||
15
SherifSP
10.04.13
✎
11:11
|
(14) Поменять местами наборы, не предлагать?))))
|
|||
16
Scorpion_1986
10.04.13
✎
11:12
|
неа, мне на дату заправки нужно получить подразделение, а не на дату перемещения получить заправку..((
|
|||
17
cw014
10.04.13
✎
11:19
|
Ну что то типа такого и одним запросом:
// Заглушка для описания первого набора [ ВЫБРАТь ПервыйНабор.Транспорт, ПервыйНабор.ДатаЗаправки ПОМЕСТИТЬ ПервыйНабор ИЗ &ПервыйНабор КАК ПервыйНабор ; // Заглушка для описания первого набора ] ВЫБРАТЬ ВторойНаборСрезПоследних.Период, ВторойНаборСрезПоследних.Транспорт, ВторойНаборСрезПоследних.Подразделение ПОМЕСТИТЬ ВторойНабор_ОтборТранспорта ИЗ РегистрСведений.ВторойНабор.СрезПоследних(&Период, Транспорт В (ВЫБРАТЬ РАЗЛИЧНЫЕ ПервыйНабор.Транспорт ИЗ ПервыйНабор КАК ПервыйНабор)) КАК ВторойНаборСрезПоследних ; ВЫБРАТЬ ВторойНабор_ОтборТранспорта_ПериодДействия.Период, ПервыйНабор.Транспорт, ВторойНабор_ОтборТранспорта_ПериодДействия.Подразделение ПервыйНабор.ДатаЗаправки ИЗ ПервыйНабор КАК ПервыйНабор ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ВторойНабор_ОтборТранспорта.Период, ВторойНабор_ОтборТранспорта.Транспорт, ВторойНабор_ОтборТранспорта.Подразделение, МАКСИМУМ(ВторойНабор_ОтборТранспорта_Окончание.Период) КАК ПериодОкончания ИЗ ВторойНабор_ОтборТранспорта КАК ВторойНабор_ОтборТранспорта ЛЕВОЕ СОЕДИНЕНИЕ ВторойНабор_ОтборТранспорта КАК ВторойНабор_ОтборТранспорта_Окончание ПО ВторойНабор_ОтборТранспорта.Транспорт = ВторойНабор_ОтборТранспорта_Окончание.Транспорт И ВторойНабор_ОтборТранспорта.Период < ВторойНабор_ОтборТранспорта_Окончание.Период СГРУППИРОВАТЬ ПО ВторойНабор_ОтборТранспорта.Период, ВторойНабор_ОтборТранспорта.Транспорт, ВторойНабор_ОтборТранспорта.Подразделение) КАК ВторойНабор_ОтборТранспорта_ПериодДействия ПО ПервыйНабор.ДатаЗаправки МЕЖДУ (ВторойНабор_ОтборТранспорта_ПериодДействия.Период) И (ВторойНабор_ОтборТранспорта_ПериодДействия.ПериодОкончания) И ПервыйНабор.Транспорт = ВторойНабор_ОтборТранспорта_ПериодДействия.Транспорт |
|||
18
ЧашкаЧая
10.04.13
✎
11:26
|
Соединение нужно сделать с параметрами:
Книга знаний: Срез последних на каждую дату в запросе |
|||
19
Scorpion_1986
10.04.13
✎
11:30
|
(18) Я так и делаю. Все с параметрами. Раньше у меня получалось.
|
|||
20
Scorpion_1986
10.04.13
✎
11:30
|
тут есть какой то нюанс, не могу понять какой... вот и обращаюсь сюда
|
|||
21
cw014
10.04.13
✎
11:31
|
(20) а в (17) тебе реализация не нравится?
|
|||
22
Scorpion_1986
10.04.13
✎
11:33
|
(21) Немного сложновато, хочеться докопаться до истины тут, так часто буду делать. Спасибо тебе.
|
|||
23
Scorpion_1986
10.04.13
✎
11:34
|
(20) отличаеться только тем что у вас в запросе:
в условие компановки выводяться все поля а у меня только те по которым я соединяюсь |
|||
24
cw014
10.04.13
✎
11:40
|
(22) А что там сложного то? Выбираешь из второго набора и соединяешь с самим собой по транспорту но что бы период у второго набора был больше... Только я ошибся, поставь вместо МАКСИМУМ - МИНИМУМ
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |