Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата

Наши программы => УкрСклад => Тема розпочата: crazyjonyster від Квітень 25, 2012, 12:29:38

Назва: КАК удалить группу товаров через SQL запрос?
Відправлено: crazyjonyster від Квітень 25, 2012, 12:29:38
Есть такая проблема. Изначально я тестировал программу и в ней была создана группа "XXX TEST", потом мне все понравилось и я (не отчищая данные через меню) просто удалил склад "XXX TEST" и импортировал заново все товары. Сейчас часто мы добавляет новые товары с кодом который был в тестовой группе "XXX TEST" и программа говорит, что найден товар и таким же кодом в группе "XXX TEST".... Так вот я хочу запросом в базу SQL удалить эту "XXX TEST" что бы подобные сообщения не появлялись.

Если кто знает, пожалуйста напишите каким запросом можно физически удалить группу товаров "XXX TEST" из базы УкрСклада!
Назва: Re: КАК удалить группу товаров через SQL запрос?
Відправлено: crazyjonyster від Квітень 25, 2012, 21:49:53
Прикрепил скрин для наглядности.
Кто-нибудь подскажите как удалить группу из базы полностью!
Назва: Re: КАК удалить группу товаров через SQL запрос?
Відправлено: TheOK від Квітень 26, 2012, 01:02:52
Вы говорите о складе или о группе товара (ну вы и напутали)? Думаю, что все таки о группе. Все нижесказанное применимо только если речь шла о группе товара.
Не понимаю как вы удалили тестовый склад/группу (вернее понимаю, но думаю, что не следует экспериментировать на рабочих данных).
Способы решения:
Select
tn.name as tovar, tip.name as group_name,tip.num
from
tovar_name tn left join tip on (tn.tip=tip.num)
order by 2

1) delete from tovar_zal where tovar_zal.tovar_id in( Select tn.num from tovar_name tn  where tovar_name.tip=№_ГРУППЫ_КОТОРУЮ_НУЖНО_УДАЛИТЬ)

2) delete from tovar_name where tovar_name.tip=№_ГРУППЫ_КОТОРУЮ_НУЖНО_УДАЛИТЬ

№ группы увидите из отчета

Данный способ удалит не группу, как вы хотели, а товар из группы, что вам, скорее всего и нужно (ведь ругалось именно на "дубликат" товара).
P.S. админ, после таких слов добавляет обычно:"обязательно сделайте архив базы"
Назва: Re: КАК удалить группу товаров через SQL запрос?
Відправлено: crazyjonyster від Квітень 26, 2012, 02:10:33
Спасибо большое! Это именно то, что мне нужно! Все сделал, все сработало и даже база похудела на 2мб ))

П.С. Речь таки о группе товаров, я ошибся, спасибо!
Назва: Re: КАК удалить группу товаров через SQL запрос?
Відправлено: TheOK від Квітень 26, 2012, 03:11:24
2 MB это очень-преочень много....
1) Если хранили изображения товара и товара было достаточно много, или объем уменьшился после резервирования->восстановления, то все должно быть ОК.
2) От приведенного запроса она едва ли могла уменьшиться настолько, если все сделано правильно или не выполняется 1)
Если не (1), поосторожничайте ... возможно, что-то не так (подобные запросы , если не задать условие where способны очистить все данные в таблице БД, хотя, судя по всему этого не произошло, раз уж вы видите товар на складе)
Назва: Re: КАК удалить группу товаров через SQL запрос?
Відправлено: crazyjonyster від Квітень 26, 2012, 12:43:14
Цитата: TheOK від Квітень 26, 2012, 03:11:24
2 MB это очень-преочень много....
1) Если хранили изображения товара и товара было достаточно много, или объем уменьшился после резервирования->восстановления, то все должно быть ОК.
2) От приведенного запроса она едва ли могла уменьшиться настолько, если все сделано правильно или не выполняется 1)
Если не (1), поосторожничайте ... возможно, что-то не так (подобные запросы , если не задать условие where способны очистить все данные в таблице БД, хотя, судя по всему этого не произошло, раз уж вы видите товар на складе)

Дело в том, что изначально тестирую УкрСклад я импортировал в него около 3000 товаров, потом удалял со склада группу кликая на ней правой кнопкой мыши -> удалить все из группу -> удалить группу. И такой имопрт + удаление проделывал три раза. Но программа физически из базы товары не удаляла, а значит в ней было порядка 8-9 тис товаров которые в справочнике не светились, а просто как мусор в базе были. А вы помогли мне от них избавится. Изображений товара в базе я не хранил, а при удалении выполнил все ваши пункты. После удаления и проверки базы все что нужно остается на своем месте. Так что все отличненько!
Назва: Re: КАК удалить группу товаров через SQL запрос?
Відправлено: TheOK від Квітень 26, 2012, 14:16:27
Думаю, все в порядке. 9 тыс. товара, очень даже не маленькая цифра)
Назва: Re: КАК удалить группу товаров через SQL запрос?
Відправлено: crazyjonyster від Жовтень 24, 2013, 14:01:07
Цитата: TheOK від Квітень 26, 2012, 14:16:27
Думаю, все в порядке. 9 тыс. товара, очень даже не маленькая цифра)

А возможно вы можете подсказать как удалить уже удаленные товары?

Опишу ситуацию:

Добавился товар в базу и по какой-то причине он либо не использовался либо была приходная и возврат поставщику ( то есть никакого движения влияющего на прибыль и т. д.) Далее мы этот товар удалили, но теперь после добавления нового товара, но со штрих-кодом удаленного - база выдает сообщение о том что товар с таким наименованием найден в другой группе, нажимаю ок, и опять сообщение товар с таким штрихкодом найден в такой-то групе, нажимаю не синхронизировать, и появляется в базе удаленный товар + новый товар, причем новый товар оказывается нивкакой группе от этого не высвечивается в отчете об остатках по поставщику... Суть состоит в том что бы через SQL запрос удалить из базы уже удаленные товары и этим избавится от этих сообщений и ненужного восстановления уже удаленных товаров. Готов и заплатить за данную помощь)) Моя почта John на домене shtuki.ua

Можно было бы присвоить товарам и новые штрих-кода, но очень не хочется так как у нас лимит на 10'000 кодов  (неважно почему) и около 4500 тыс из них забиты в давно удаленные товары и хочется освободить базу от этих товаров и освободить кода для дальнейшего использования!

ВАЖНО, что сейчас все эти товары находятся не в одной конкретной группу а где угодно....

Заранее спасибо!
Назва: Re: КАК удалить группу товаров через SQL запрос?
Відправлено: admin від Жовтень 25, 2013, 09:26:30
Подправили. В удаленных не будет искать. Ждите обновлений.
Назва: Re: КАК удалить группу товаров через SQL запрос?
Відправлено: Denwer від Листопад 15, 2016, 16:52:33
А после резервирования\восстановления удаленный товар полностью исчезает из базы или остается навсегда скрытым? У нас довольно большой продуктовый магазин и часто меняется ассортимент товара и соответсвенно удаляются старые позиции, это не влияет на размер базы?
Назва: Re: КАК удалить группу товаров через SQL запрос?
Відправлено: Creat від Листопад 16, 2016, 08:23:41
Назавжди залишається в базі. Так база зростає. Старі товари використовувались в документах і їх не можна видалити просто з бази, їх помічають "скритими".
Назва: Re: КАК удалить группу товаров через SQL запрос?
Відправлено: Denwer від Листопад 16, 2016, 22:25:05
Спасибо за ответ, а если сделать очистку данных и документов (кроме справочника товаров), останутся в базе ранее удаленные записи?
Назва: Re: КАК удалить группу товаров через SQL запрос?
Відправлено: admin від Листопад 17, 2016, 10:17:57
Цитата: Denwer від Листопад 16, 2016, 22:25:05
Спасибо за ответ, а если сделать очистку данных и документов (кроме справочника товаров), останутся в базе ранее удаленные записи?

Нет, "Очистка данных" удаляет все документы, и если надо создаст документ остатков, база уменьшится после резервирования / восстановления.
Назва: Re: КАК удалить группу товаров через SQL запрос?
Відправлено: Zapuzalo від Липень 26, 2019, 20:16:16
Тоже проблема с призрачными группами и товарами в них.
С помощью первого скрипта показались все товары и все группы с подгруппами. Выписал все в тетрадку, и отдельно выписал действующие номера, которые отображаются в "Наценки на товары". После третьим скриптом (второй не сработал, выскакивала ошибка) удалил товары с призрачных групп. После прогонки первого скрипта, номера призрачных групп уже не отображались.
Есть большое желание почистить полностью. Остались товары, у которых не было групп, и товары призраки, которые находятся в существующих (действующих) группах.
Есть ли способ завершить начатое до победного конца?

На фото призраки без групп, и призраки в действующих группах:

(https://s8.hostingkartinok.com/uploads/images/2019/07/2c1b118c5f5ca967316791ca603e8313.png) (https://hostingkartinok.com/show-image.php?id=2c1b118c5f5ca967316791ca603e8313)

(https://s8.hostingkartinok.com/uploads/images/2019/07/bc285d01cb044b1aea9c721004e9b2c7.png) (https://hostingkartinok.com/show-image.php?id=bc285d01cb044b1aea9c721004e9b2c7)

Не покидает надежда навести полный порядок )