0
- 29.05.2016 - 07:35
|
Что-то сломал голову с весьма простой задачей. Надо исправить кое-какие косяки в регистрах без перепроведения, но вот вышла непонятка с запросом. Несущественные детали опускаю. Есть простой запрос на чтение: ТекстЗапроса = " |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 | |
1
- 29.05.2016 - 07:36
| а почему текст выводится неформатированным, как его прилично опубликовать ?) | |
2
- 29.05.2016 - 07:53
| в запросе только не $Рег.*, а Рег.*, это я для простоты понимания требуемые поля заменил звездочкой, а про $ забыл ) | |
3
- 29.05.2016 - 08:26
| Короче, пока ломать голову не буду. Обернул запрос на чтение SELECT как внутренний, с ним по ключевым полям связал запрос на UPDATE. Так работает. | |
| Интернет-форум Краснодарского края и Краснодара |