|
Противоречивая связь в запросе | ☑ | ||
---|---|---|---|---|
0
vse_serjezno
21.03.16
✎
11:43
|
День добрый
Пишу элементарный запрос получения данных по приходе номенклатуры за период с выборкой цен из периодического рег.сведений на день прихода. Мне нужна связь по товару и по дате его прихода. Хотелось бы написать так(беру и сам документ и его ТЧ, чтобы не обращаться через 2 точки - ПоступлениеТоваровСуммы.Ссылка.Дата): ВЫБРАТЬ ПоступлениеТоваровСуммы.Номенклатура, Цены.Цена ИЗ Документ.ПоступлениеТоваров.Суммы КАК ПоступлениеТоваровСуммы ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваров КАК ПоступлениеТоваров ПО (ПоступлениеТоваровСуммы.Ссылка = ПоступлениеТоваров.Ссылка И ПоступлениеТоваров.Дата >= &ПериодНачало И ПоступлениеТоваров.Дата <= &ПериодОкончание) ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Цены КАК Цены ПО ПоступлениеТоваровСуммы.Номенклатура = Цены.Товар ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Цены КАК Цены ПО ПоступлениеТоваров.Дата = Цены.Период Но, так возникает противоречивая связь. Как решить этот момент самым оптимальным способом? |
|||
1
vse_serjezno
21.03.16
✎
11:49
|
Можно конечно вложенным запросом собрать таблицу с товарами по документам за период и датой, и уже этот запрос соединять с регистром.
Но настолько это оптимально, если учесть, что можно просто из ссылки получить дату?.. |
|||
2
Aceforg
21.03.16
✎
11:52
|
||||
3
vse_serjezno
21.03.16
✎
11:52
|
Ну же, товарищи :)
|
|||
4
vse_serjezno
21.03.16
✎
11:53
|
(2) Спасибо, сейчас почитаю.
|
|||
5
Господин ПЖ
21.03.16
✎
11:53
|
написано какое-то уг, про какие "оптимумы" вообще речь...
|
|||
6
vse_serjezno
21.03.16
✎
11:58
|
(2) Не совсем то, что мне нужно.
Я выбираю документы в принципе за период и на каждую дату документа нужно соответствующее значение цены, поэтому виртуальная таблица не подойдет. Я же спрашиваю про Дату в документе. |
|||
7
mehfk
21.03.16
✎
12:01
|
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Цены КАК Цены
ПО ПоступлениеТоваровСуммы.Номенклатура = Цены.Товар ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Цены КАК Цены Алиас у одной из таблиц поменяй |
|||
8
vse_serjezno
21.03.16
✎
12:06
|
(7) не, не помогает, не в синонимах дело.
|
|||
9
mehfk
21.03.16
✎
12:10
|
(8) Зачем дважды соединяешься с регистром сведений?
|
|||
10
vse_serjezno
21.03.16
✎
12:12
|
(9) Я соединяю документ и его ТЧ, в это как раз мой вопрос.
Я это делаю, чтобы не обращаться через точку из ТЧ к реквизиту документа Дата. |
|||
11
mehfk
21.03.16
✎
12:13
|
(10) И что?
|
|||
12
mehfk
21.03.16
✎
12:14
|
Кто мешает сделать так?
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Цены КАК Цены ПО ПоступлениеТоваровСуммы.Номенклатура = Цены.Товар И ПоступлениеТоваров.Дата = Цены.Период |
|||
13
vse_serjezno
21.03.16
✎
12:14
|
(9) Из ТЧ я соединяюсь по товару, а из документа по Дате.
Запрос в консоли не откроется, я его текст изменила, чтобы показать, какую связь я хочу сделать. В консоли он как раз выдает ошибку с противоречивой связью. |
|||
14
Wern
21.03.16
✎
12:14
|
(10) Почему бы не обратится через две точки? Тут это не чем не грозит.
|
|||
15
RomanYS
21.03.16
✎
12:17
|
(0) В данном случае избавление от "двух точек" явно не оправдано:
-профита никакого (неявное соединение будет таким же как твое явное), -а ты уже запутался |
|||
16
vse_serjezno
21.03.16
✎
12:17
|
(12) Мешает то, что есть еще связь между ТЧ и самим документом. И все в сумме дает ошибку.
|
|||
17
vse_serjezno
21.03.16
✎
12:18
|
(15) Спасибо, обращусь через 2 точки и не буду мучаться.)
|
|||
18
mehfk
21.03.16
✎
12:19
|
(16) Бред.
|
|||
19
vse_serjezno
21.03.16
✎
12:24
|
(18) Почему? Попробуй.
Добавь в этот запрос связь по дате, как ты предлагаешь: ВЫБРАТЬ ТЧПоступление.Номенклатура, Цены.Цена ИЗ РегистрСведений.Цены КАК ЦеныЛеМуррр ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваров.Суммы КАК ТЧПоступление ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваров КАК ПоступлениеТоваров ПО ТЧПоступление.Ссылка = ПоступлениеТоваров.Ссылка ПО Цены.Товар = ТЧПоступление.Номенклатура |
|||
20
mehfk
21.03.16
✎
12:44
|
Можно полный текст запроса, без "добавь" и т.д? Дописать руками то что хотите и все.
|
|||
21
mehfk
21.03.16
✎
12:46
|
И как-то внезапно одно из внутренних соединений превратилось в левое.
|
|||
22
Cyberhawk
21.03.16
✎
12:46
|
СКД и два набора данных уже предлагали? Второй набор данных параметром даты среза принимает дату из каждой записи первого набора данных
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |