|   |   | 
| 
 | v7: Помогите с запросом SQL | ☑ | ||
|---|---|---|---|---|
| 0
    
        AlexSTAL 07.07.15✎ 08:44 | 
        Коллеги, в SQL-запросах вообще не спец, помогите с запросом
 Есть запрос, который обнуляет значение документа, если в журнале документ помечен на удаление ТекстЗапроса = " |UPDATE _1sconst |SET docid = ' 0 ' |WHERE docid in(select iddoc from _1sjourn (nolock) where ((closed = 4) and (ismark = 1)))"; Как написать аналогичный запрос, который обнуляет, если документ вообще отсутствует в журнале ("объект не найден") | |||
| 1
    
        el-gamberro 07.07.15✎ 08:49 | 
        Надо связывать с таблицей, которая не видит объект в журнале. Например если пытаемся смотреть из справочника, то выбираем наши ИД документов по таблице справочника, ищем в журнале и если NULL, то значения очищаем.     | |||
| 2
    
        1Сергей 07.07.15✎ 08:54 | 
        (1) тянуть надо из _1sconst с левым соединением с _1sjourn с условием is NULL     | |||
| 3
    
        AlexSTAL 07.07.15✎ 08:55 | 
        (2) буду благодарен, если эти 2 строчки кода покажите вживую     | |||
| 4
    
        DCKiller 07.07.15✎ 09:02 | 
        |UPDATE _1sconst 
 |SET docid = ' 0 ' |WHERE docid IN (SELECT docid FROM _1sconst As Const LEFT JOIN _1sjourn As Journ ON Journ.IDDOC = Const.DocID WHERE Journ.IDDOC IS NULL) Ну как-то так... :) | |||
| 5
    
        AlexSTAL 07.07.15✎ 09:52 | 
        Попробовал вот такой код
 ТекстЗапроса = " |UPDATE _1sconst |SET docid = ' 0 ' |WHERE docid not in(select iddoc from _1sjourn (nolock))"; визуально всё правильно обработал без всяких соединений... нет подводных камней? | |||
| 6
    
        DCKiller 07.07.15✎ 09:54 | 
        (5) Поздравляю, ты затер значения всех констнат и периодических реквизитов справочников.     | |||
| 7
    
        AlexSTAL 07.07.15✎ 09:56 | 
        (6) Почему затёр? Визуально всё на месте
 Запрос изменяем колонку с документом (каким документом был установлен периодический реквизит) и всё... Со значениями он вообще ничего не делает | |||
| 8
    
        1Сергей 07.07.15✎ 09:58 | 
        (6) просто перезаписал     | |||
| 9
    
        DCKiller 07.07.15✎ 09:59 | 
        (7) А ну да, у тебя ж он чисто колонку с полем ид документа меняет...
 Ну тогда вроде все норм :) | |||
| 10
    
        Mikeware 07.07.15✎ 09:59 | 
        (6) не затер, а отвязал от регистратора     | |||
| 11
    
        DCKiller 07.07.15✎ 10:03 | 
        (10) ну так ему вроде это и нужно было     | |||
| 12
    
        AlexSTAL 07.07.15✎ 10:03 | 
        Я просто на копии проверил
 вот думаю, применять к боевой... 45 Гб однако | |||
| 13
    
        AlexSTAL 07.07.15✎ 10:03 | 
        (11) да, именно это мне и нужно, если регистратора уже нет в базе     | |||
| 14
    
        Drac0 07.07.15✎ 10:04 | 
        (13) А ты сделал наоборот :) Отвязал от регистраторов, которые есть в базе...     | |||
| 15
    
        Drac0 07.07.15✎ 10:05 | 
        +(14) не, вру. Норм. я not не заметил.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |