|   |   | 
| 
 | Противоречивая связь в запросе | ☑ | ||
|---|---|---|---|---|
| 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 | 
        СКД и два набора данных уже предлагали? Второй набор данных параметром даты среза принимает дату из каждой записи первого набора данных     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |