Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 апр 2024, 02:34

Вопрос по Запросам

Автор Gennadiyy, 09 дек 2015, 22:34

0 Пользователей и 1 гость просматривают эту тему.

Gennadiyy

Здравствуйте! Скажите, как с помощью запроса оставить только строки, имеющие дубли?
Т.е. например есть столбец "Значение", в нем имеются следующие строки: 1. а, 2. б, 3. в, 4. а, на выходе должны остаться: 1. а, 4. а

vitasw

посчитать количество выбрать там где больше 1.

Gennadiyy

Цитата: vitasw от 09 дек 2015, 23:30
посчитать количество выбрать там где больше 1.
К примеру таким запросом он выводит только по одной строке, например есть строка 1.а 2.б 3.а 4.г он выводит 1.а, а надо, что бы он выводил 1.а, 3.а
"ВЫБРАТЬ
| ВЫРАЗИТЬ(ТбЧ1.Значение КАК СТРОКА(300)) КАК Значение
|ИЗ
| ТабличнаяЧасть1 КАК ТбЧ1
|СГРУППИРОВАТЬ ПО
| ВЫРАЗИТЬ(ТбЧ1.Значение КАК СТРОКА(300))
|ИМЕЮЩИЕ
| КОЛИЧЕСТВО(ВЫРАЗИТЬ(ТбЧ1.Значение КАК СТРОКА(300)))>1";

KrivosheevEV

К полученной таблице справа подключить исходную.

Gennadiyy

Цитата: KrivosheevEV от 10 дек 2015, 07:35
К полученной таблице справа подключить исходную.
А можно по подробнее как это сделать? Я просто еще совсем новичок)

vitasw

Цитата: Gennadiyy от 10 дек 2015, 07:091.а, 3.а

это как понимать? первая строка значение "а" и третья строка значение"а"?

LexaK

вот простенький запрос по вашей задачке, выполните его в консоли запросов, увидите результат, можете поэксперементировать с другими значениями.
Главное, суметь разобраться в нем, и применить этот пример для решения аналогичных задач, принцип в таких задачах один и тот-же


//создаем пример вашей таблички
Выбрать 1 как Номер, "а" как Значение поместить Таб
объединить все Выбрать 2, "б"
объединить все Выбрать 3, "в"
объединить все Выбрать 4, "а"
;

//промежуточная таблица с повторяющимися значениями
выбрать
Таб.Значение
поместить пром
из Таб
сгруппировать по
Таб.Значение
имеющие
Количество(1)  > 1
;

//детальная таблица из повторяющихся значений
выбрать
Таб.*
из
Пром
внутреннее соединение Таб
по Пром.Значение = Таб.Значение
если помогло нажмите: Спасибо!

Gennadiyy

Цитата: vitasw от 10 дек 2015, 11:04
Цитата: Gennadiyy от 10 дек 2015, 07:091.а, 3.а

это как понимать? первая строка значение "а" и третья строка значение"а"?
Да, т.е. на выходе должно получиться 1.а и 3.а
Добавлено: 10 дек 2015, 12:46


Цитата: LexaK от 10 дек 2015, 12:25
вот простенький запрос по вашей задачке, выполните его в консоли запросов, увидите результат, можете поэксперементировать с другими значениями.
Главное, суметь разобраться в нем, и применить этот пример для решения аналогичных задач, принцип в таких задачах один и тот-же


//создаем пример вашей таблички
Выбрать 1 как Номер, "а" как Значение поместить Таб
объединить все Выбрать 2, "б"
объединить все Выбрать 3, "в"
объединить все Выбрать 4, "а"
;

//промежуточная таблица с повторяющимися значениями
выбрать
Таб.Значение
поместить пром
из Таб
сгруппировать по
Таб.Значение
имеющие
Количество(1)  > 1
;

//детальная таблица из повторяющихся значений
выбрать
Таб.*
из
Пром
внутреннее соединение Таб
по Пром.Значение = Таб.Значение

Спасибо! Сейчас буду разбираться)

vitasw

В качестве примера:
"ВЫБРАТЬ
|   ПоступлениеТоваровУслугТовары.НомерСтроки,
|   ПоступлениеТоваровУслугТовары.Номенклатура.Наименование
|ПОМЕСТИТЬ втТЗ
|ИЗ
|   Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|   ВложенныйЗапрос.НоменклатураНаименование,
|   втТЗ.НомерСтроки
|ИЗ
|   (ВЫБРАТЬ
|      втТЗ.НоменклатураНаименование КАК НоменклатураНаименование,
|      СУММА(1) КАК КоличествоВхождений
|   ИЗ
|      втТЗ КАК втТЗ
|   
|   СГРУППИРОВАТЬ ПО
|      втТЗ.НоменклатураНаименование) КАК ВложенныйЗапрос
|      ЛЕВОЕ СОЕДИНЕНИЕ втТЗ КАК втТЗ
|      ПО ВложенныйЗапрос.НоменклатураНаименование = втТЗ.НоменклатураНаименование
|ГДЕ
|   ВложенныйЗапрос.КоличествоВхождений > 1"

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск