Прямой, но кривой запрос Что-то сломал голову с весьма простой задачей. Надо исправить кое-какие косяки в регистрах без перепроведения, но вот вышла непонятка с запросом. Несущественные детали опускаю. Есть простой запрос на чтение: ТекстЗапроса = " |SELECT | $Рег.*, | Наряды.$ОбщийРеквизит.ДокументОснование AS ДокументОснование |FROM | $Регистр." + ИмяРегистра + " AS Рег |INNER JOIN | $Документ.НарядНаОперацию AS Наряды ON ($Рег.Наряд = Наряды.IdDoc) |WHERE | ($Рег.План NOT IN (SELECT | Jr.IdDoc | FROM | 1SJOURN AS Jr)) |"; Вот такой запрос на изменение записей тоже работает: ТекстЗапроса = " |UPDATE | Рег |SET | $Рег.План = ""000"" |FROM | $Регистр." + ИмяРегистра + " AS Рег // |INNER JOIN // | $Документ.НарядНаОперацию AS Наряды ON ($Рег.Наряд = Наряды.IdDoc) |WHERE | ($Рег.План NOT IN (SELECT | Jr.IdDoc | FROM | 1SJOURN AS Jr)) |"; Пусть "000" не смущают, это просто для отладки, на самом деле замена должна быть реквизитом из "Наряды", для того то с ними и требуется соединение. Итак такой UPDATE (без внутреннего соединения) прекрасно работает. Но как только возвращаю внутреннее соединение, убрав комментарии с INNER JOIN так запрос не работает, думает, думает и выдавая сообщение, что темповый файл слишком большой. Но связь с Наряды один к одному, искомых (кривых) записей регистра тоже всего ничего, около сотни. В чем мой косяк ? База DBF, но это видно и по 1SJOURN |
а почему текст выводится неформатированным, как его прилично опубликовать ?) |
в запросе только не $Рег.*, а Рег.*, это я для простоты понимания требуемые поля заменил звездочкой, а про $ забыл ) |
Короче, пока ломать голову не буду. Обернул запрос на чтение SELECT как внутренний, с ним по ключевым полям связал запрос на UPDATE. Так работает. |
Текущее время: 20:43. Часовой пояс GMT +3. |