Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Исключить из результатов запроса определенные строки

Исключить из результатов запроса определенные строки
Я
   JuixyJes
 
21.07.21 - 13:28
Добрый день! Подскажите... Как исключить из запроса две записи с одинаковым значением поля? Допустим это поле - наименование.

есть куча строк результата запроса, и вот в 3 и 37 строке одно и то же, как удалить из результатов запроса обе строки?
   JuixyJes
 
1 - 21.07.21 - 13:29
Для ясности, мне не нужно оставлять ни одну строку из этих двух.
   Kassern
 
2 - 21.07.21 - 13:29
(1) используй отборы
   crasler
 
3 - 21.07.21 - 13:33
(1) Сохрани таблицу в временную с подсчетом количества совпадений и сравнивай есть ли там это наименование
   Ёпрст
 
4 - 21.07.21 - 13:35
group by +having sum(нечто )=1
   Said_We
 
5 - 21.07.21 - 13:35
(0) Если строки полностью одинаковые, то вместо ВЫБРАТЬ используй ВЫБРАТЬ РАЗЛИЧНЫЕ
   Ёпрст
 
6 - 21.07.21 - 13:35
(5) ей надо обе удалить из выборки
   acht
 
7 - 21.07.21 - 13:35
сгруппировать по чегой-то-там имеющие(количиство(чегой-то-там))=1
   Said_We
 
8 - 21.07.21 - 13:36
Если обе, три и более строки надо удалить, то надо их посчитать и где более 1 в условие.
   JuixyJes
 
9 - 21.07.21 - 13:39
(4) Так, я не понимаю что это значит, можете меня считать глупой, но это так:)

Можете по подробнее написать, как и где мне это сделать?
   Ёпрст
 
10 - 21.07.21 - 13:39
(8) дык она же не написала, что если есть дубли строк, то такие строки не учитываем вообще
   Ёпрст
 
11 - 21.07.21 - 13:40
(9) ну, в (7) по-русски то же самое
   Said_We
 
12 - 21.07.21 - 13:41
(10) Как бы написала....
В (0) "как удалить из результатов запроса обе строки?"
В (1) "мне не нужно оставлять ни одну строку из этих двух."
   Said_We
 
13 - 21.07.21 - 13:42
(9) Текст запроса покажи - расскажут как.
   dubolom
 
14 - 21.07.21 - 13:42
(9) Новая временная таблица
ВЫБРАТЬ
ВашаТаблица.Наименование КАК Наименование
СГРУППИРОВАТЬ ПО ВашаТаблица.Наименование
ИМЕЮЩИЕ
КОЛИЧЕСТВО(ВашаТаблица.Наименование)>1
Потом делаете внутреннее соединение по полю Наименование с вашей таблицей.
   Ёпрст
 
15 - 21.07.21 - 13:43
(12) и ?
не нужно оставлять ни одну строку из этих двух = удалить обе
   Said_We
 
16 - 21.07.21 - 13:44
(15) Или три или более... Я так прочитал.
(14) соединения не нужны
   Адинэснег
 
17 - 21.07.21 - 13:44
(15) -> (2)
   Kassern
 
18 - 21.07.21 - 13:45
я прост не понимаю, что тут обсуждать, детская же задача?
Как я понял у ТС следующий результат:
Яблоко 1
Груша 3
Арбуз 10
Яблоко 2
Если стоит задача удалить именно яблоко из результата запроса, то какой смсыл что то там группировать? Тупо Где Таблица.Наименование<>"Яблоко";
Вот тогда и придем к результату описанному ТС("есть куча строк результата запроса, и вот в 3 и 37 строке одно и то же, как удалить из результатов запроса обе строки?")
   Адинэснег
 
19 - 21.07.21 - 13:45
ему тупо сгруппировать надо, либо "различные" если агрегатных функций не надо
   Kassern
 
20 - 21.07.21 - 13:46
(18) ну или я не понял, что именно ТС надо...
   dubolom
 
21 - 21.07.21 - 13:46
(16) Чому не нужны? Как выбросить лишние строки из первоначальной таблицы?
   acht
 
22 - 21.07.21 - 13:46
(14) > Новая временная таблица
Зачем?
   Адинэснег
 
23 - 21.07.21 - 13:47
да он даже запрос не скинул)
   acht
 
24 - 21.07.21 - 13:47
(21) Посчитать количество группировкой и выбросить те, которых слишком много
   dubolom
 
25 - 21.07.21 - 13:47
(22) Получить данные по задвоениям поля Наименование. По умолчанию ведь в исходной таблице есть и другие поля.
   Said_We
 
26 - 21.07.21 - 13:47
(19) Не ему, а ей и фото есть.
   dubolom
 
27 - 21.07.21 - 13:47
(24) А другие колонки из исходной табилцы как подтянутся?
   acht
 
28 - 21.07.21 - 13:48
(27) А с чего ты взял, что они там есть?
   JuixyJes
 
29 - 21.07.21 - 13:48
(14) Вот вроде бы похоже, но только не >1 а =1 наверное
   Адинэснег
 
30 - 21.07.21 - 13:49
а так удалить все таки, тогда (9)
а помните было затишье на мисте по тех. части? опять повылазили гуглопрограмиисты / мистапрограммисты
 
 
   dubolom
 
31 - 21.07.21 - 13:49
(29) Да, конечно, косякнул.
(28) Не сказано, что их нет, по дефолту в таблице не одна колонка.
   Said_We
 
32 - 21.07.21 - 13:49
(29) Тоже самое с =1 в (7)
   acht
 
33 - 21.07.21 - 13:52
(30) Тут другое =) Тут явный https://clck.ru/1BojE
   Said_We
 
34 - 21.07.21 - 13:53
(31) Если строки полностью одинаковые, то одинаковые по всем колонкам. Всё в группировку. А если какие-то поля не равны, то это не равные строки. :-)
Вместо внутреннего соединения можно использовать в условии

ГДЕ т1.Наименование в (выбрать т.Наименование из т как т ....
   Said_We
 
35 - 21.07.21 - 13:58
(34)
Или так:
ГДЕ НЕ т1.Наименование в (выбрать т.Наименование из т как т .... <> 1...

Так если исключается строк не много. Как в примере в (0) до 37 строки только первое совпадение... :-)
   Classic
 
36 - 21.07.21 - 14:00
(0)
Уникальное какой-то поле у строк есть?
   dubolom
 
37 - 21.07.21 - 14:06
(34) Запрос был - удалить записи с одинаковым значением одного поля.
Ну да, или так, но мне соединения больше нравятся:)
   Said_We
 
38 - 21.07.21 - 14:21
(37) Если условие соединения не только = или типы значений сравнения составные и т.д., то лучше не использовать СОЕДИНЕНИЯ. Может получиться сильно не быстро.
   Мигрень
 
39 - 21.07.21 - 15:33
(0) нужные строки пометить на удаление и провести процедуру удаления помеченных объектов. Тогда эти строки в результат запроса не попадут
   dubolom
 
40 - 21.07.21 - 15:41
(39) Не факт, что это вообще справочник. И не факт, что нужно именно удалять.
   Мигрень
 
41 - 21.07.21 - 16:04
(40) в (0) написано что нужно исключить, если удалить, то они исключатся. Про справочник я нигде не писал.
   dubolom
 
42 - 21.07.21 - 16:05
(41) Сегодня день толстоты на Мисте, штоле?
   Мигрень
 
43 - 21.07.21 - 16:07
(42) не знаю, не измерял, рулетка нужна


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.