[ТЕМА ЗАКРЫТА]
13.07.2007 17:15
Gary
 
Есть много приходных накладных-оснований, которые необходимо удалить. Все они в статусе Черновик. Но СМ не дает их удалить, потому что они являються основанием для др. документов, в том числе и для товародвижения. Как можно грохнуть эти связи вместе с накладными?
13.07.2007 17:22
Mtirt
 
Код:
delete from smcommonbase where basedoctype='WI' and baseid in (Список номеров документов в черновике, в одинарных кавычках, через запятую)
Кажется так. Могу ошибаться, может быть наоборот. Рекомендую попробовать на копии базы.
13.07.2007 18:18
Gary
 
Цитата:
Mtirt
Код:
delete from smcommonbase where basedoctype='WI' and baseid in (Список номеров документов в черновике, в одинарных кавычках, через запятую)
Кажется так. Могу ошибаться, может быть наоборот. Рекомендую попробовать на копии базы.
Это удалит только общие основания, надо удалить основания для товародвижения.
13.07.2007 18:26
Mtirt
 
Держи. Возможны опечатки. За себестоимость не отвечаю.
Код:
 update smspec t
set t.causetype= null
t.causeid=null
t.causespecitem=null
whee t.causetype='WI' and t.causeid in (Список накладных)
13.07.2007 18:30
Gary
 
Цитата:
Mtirt Держи. Возможны опечатки. За себестоимость не отвечаю.
Код:
 update smspec t
set t.causetype= null
t.causeid=null
t.causespecitem=null
whee t.causetype='WI' and t.causeid in (Список накладных)
Можно по шагово и по подробнее что и как? Мне необходимо понять что я буду делать. Я целый день убил на поиски в БД местонахождения этих оснований.
13.07.2007 18:33
Mtirt
 
Цитата:
Gary Можно по шагово и по подробнее что и как? Мне необходимо понять что я буду делать. Я целый день убил на поиски в БД местонахождения этих оснований.
Не поняла? Запросы в чем выполняешь? Открываешь запрос и пишешь этот текст.
Только там, где написано Список накладных подставляешь реальные номера накладных, через запятую, как в предыдущем запросе.
После этого - commit
13.07.2007 18:42
Gary
 
Это я понял, мне просто интересно что делает этот запрос. Логическое пояснение запроса. Сделать его я могу SQL+.
13.07.2007 18:44
akonev
 
Gary, извини за идиотский вопрос, но все-таки:
Ты четко представляешь себе, что делаешь?
С точки зрения, как это все на Супермаге отразится?
Таня не случайно про себестоимость оговорилась.
Может стоит сначала еще поработать с Супермагом руками, а уже потом начинать запросами основания сносить?
13.07.2007 18:44
Mtirt
 
Удалает содержимое полей-оснований в таблице smspec.
causetype - тип документа-основания
causeid - номер-основания
causespecitem - номер строки спецификации документа-основания
13.07.2007 18:46
Mtirt
 
Цитата:
Andrew_Konev Gary, извини за идиотский вопрос, но все-таки:
Ты четко представляешь себе, что делаешь?
С точки зрения, как это все на Супермаге отразится?
Таня не случайно про себестоимость оговорилась.
Может стоит сначала еще поработать с Супермагом руками, а уже потом начинать запросами основания сносить?
Еще одно замечание. Нет никаких гарантий, что это основание не прописано еще где-нибудь, в какой-нибудь другой порожденной таблице.
13.07.2007 18:54
Gary
 
Ладно, до понедельника оставлю, трогать пока ничего не буду. Спасибо Mtirt! Что творю я знаю.
13.07.2007 19:00
akonev
 
ну тогда еще на smfinbases посмотри, если ведете платежи в СМ2000
16.07.2007 15:50
Gary
 
Цитата:
Mtirt Держи. Возможны опечатки. За себестоимость не отвечаю.
Код:
 update smspec t
set t.causetype= null
t.causeid=null
t.causespecitem=null
whee t.causetype='WI' and t.causeid in (Список накладных)
На causeid=null затыкается в ТОДЕ.
16.07.2007 16:04
OlegON
 
Цитата:
Gary На causeid=null затыкается в ТОДЕ.
правильное сравнение будет
Цитата:
causeid is null
16.07.2007 16:08
inna
 
запятые между присвоениями. Лучше все таки с текстом ошибки спрашивать.
16.07.2007 16:08
Mtirt
 
Олег, там не сравнение, там присвоение значения...
16.07.2007 16:21
inna
 
Цитата:
Gary Ошибка ORA-00900: неверно предложение на языке SQL

Запрос:
update smspec set causetype=null CAUSEID=null causespecitem=null where causeid in (select id from smdocuments where doctype='WI' and docstate=1)
update smspec set causetype=null, CAUSEID=null, causespecitem=null where causeid in (select id from smdocuments where doctype='WI' and docstate=1)

как минимум запятые
16.07.2007 16:22
Mtirt
 
Запятые поставь всё-таки...
16.07.2007 16:43
Gary
 
Всем спасибо. Написал ответ,а пока писал до самого дошло, что запятые не поставил... Все работает в 3 запроса:
1) delete from smcommonbases where baseid in (select id from smdocuments where doctype='WI' and docstate=1) удаляет общие основания

2) update smspec set causetype= null, causeid=null, causespecitem=null where causeid in (select id from smdocuments where doctype='WI' and docstate=1) удаляет основания для товародвижения

3) delete from smdocuments where doctype='WI' and docstate=1 удаляет накладные
Опции темы


Часовой пояс GMT +3, время: 21:45.

 

Форум сделан на основе vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.