Удаление дублей строк #801689


#0 by НачинающийВосьмерочн
Пытаюсь написать запрос как удалить некий массив строк, на самом деле удаление дублей, никак не могу связать 2 части запроса, там где то INNER JOIN где то должен быть, как сделать подобное ? DELETE  FROM [dbo].[_InfoRgSL21137]
#1 by Ёпрст
там где-то where потерялся
#2 by Ёпрст
ну проще писать having count>1
#3 by Ёпрст
заместо sum
#4 by Ёпрст
Ну и таким запросом, ты удалишь все записи, а не  только "дубли"
#5 by Ёпрст
:)
#6 by Basilio
угу:)
#7 by НачинающийВосьмерочн
Вот я и прошу помощи как связать эти 2 части чтобы удалить только дубли
#8 by НачинающийВосьмерочн
Мне надо удалить строки не по условию вхождения , а именно отобранные 2-й частью запроса, риб в sql из за этого не грузится
#9 by Генератор
возможно что-то типа where (fld1, fld2,fld3) in (select...)
#10 by Лефмихалыч
SELECT DISTINCT FROM _InfoRgSL21137 ; truncate table _InfoRgSL21137; insert into _InfoRgSL21137 from #TempTable;
#11 by mistеr
Тебе нужно их как-то "рассчитать на первый-второй". Потом удалить только вторые (или первые). Как это делается в скуле, я забыл :(
#12 by Генератор
+ нет, он удалит все дубли
#13 by Лефмихалыч
Вообще, автор, ты затеял адскую херню. Таблица _InfoRg - это итоги. Их бессмысленно корёжить - платформа их делает на основании записей в регистре сама
#14 by Генератор
нужно что-то типа оконной функции, которая пронумерует строки в пределах группировки и удалить те строки у которых номер строки не 1
#15 by Лефмихалыч
расскажи подробней, что это значит
#16 by mistеr
Точно, это делается оконной функцией!
#17 by Генератор
я передумал, это не сработает
#18 by НачинающийВосьмерочн
Проблема при постройке индекса, и там есть время между тем как данные уже залиты из dt и будет вызвана процедура построения индекса по измерениям возможно вариант из 10 то что нужно
#19 by Лефмихалыч
нахер все оконные функции. автору надо обменник загрузить. Тупо.
#20 by НачинающийВосьмерочн
Текст из не работает Сообщение 156, уровень 15, состояние 1, строка 2 Неправильный синтаксис около ключевого слова "FROM". Сообщение 156, уровень 15, состояние 1, строка 4 Неправильный синтаксис около ключевого слова "from".
#21 by Basilio
select t1.id_header, t1.id_department, count(t1.id_header) cnt from doc_detail_exp t1 inner join doc_detail_exp t2 on t1.id_header = t2.id_header and t1.id_department = t2.id_department group by t1.id_header, t1.id_department having count(t1.id_header) > 1 Это выборка. Удаление аналогично.
#22 by Лефмихалыч
ты реально всё копипастой делаешь? Это не готовое решение, его надо было доработать
#23 by Генератор
естественно там поля надо перечислить
#24 by Лефмихалыч
это удалит и дубль, и исходную строку
#25 by mistеr
Вот:
#26 by Лефмихалыч
не надо удалять строки из таблицы итогов регистра. Надо разобраться, почему обменник не грузится и починить причину этого
#27 by Ёпрст
SELECT _Fld21123RRef,_Fld21124RRef,_Fld21125RRef, row_number OVER (PARTITION BY _Fld21123RRef,_Fld21124RRef,_Fld21125RRef ORDER BY _Fld21123RRef,_Fld21124RRef,_Fld21125RRef) rn FROM _InfoRgSL21137 ) DELETE
#28 by НачинающийВосьмерочн
Там строится уникальный индекс по измерениям, тут он понятно не может построится и вылетает.
#29 by Лефмихалыч
Голос разума?.. Не, не слышали...
#30 by Ёпрст
пересчитай итоги
#31 by НачинающийВосьмерочн
Строки удалились те что надо, буду разбираться дальше.
#32 by Генератор
конечно лучше разобраться с причинами, если неохота то оконная функция будет удалять только текущие новые дубли записей, а решение из будет каждый раз пересоздавать всю таблицу итогов
#33 by Лефмихалыч
пля, да в файле обмена дубли в самом регистре, же, ёптить! Автор просто грузит из какой-нить угондошенной файловой в серверную
#34 by Лефмихалыч
серверную не надо лечить, она не больная
#35 by НачинающийВосьмерочн
Это база получатель никто в ней ничего делать не будет, регистр ценыпоставщиковноменклатуры в общем то нафиг не нужный, думаю этим можно пренебречь
#36 by Лефмихалыч
ну, допустим, снесет он записи. Но проблема не в тех записях, которые уже есьт в таблице и котрые он там удалять пытается, а в тех, которые платформа строит на основании данных, полученных из обменника
#37 by Лефмихалыч
ойфсё
#38 by Генератор
я и подразумеваю что это костыль
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С