Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

СКД Виртуальная Таблица Выбрать Строку с Минимальным Числом

СКД Виртуальная Таблица Выбрать Строку с Минимальным Числом
Я
   sema76
 
13.10.16 - 09:01
Есть таблица

А,Признак2,7
А,Признак1,6
А,Признак8,6
А,Признак7,12
В,Признак2,100
В,Признак1,50
В,Признак3,21
В,Признак9,116

Нужно получить таблицу

А,6
В,21

И закинуть ее в ВТ
 
 
   Это_mike
 
1 - 13.10.16 - 09:03
а запросом почему нельзя?
   sema76
 
2 - 13.10.16 - 09:04
(1) Отчет на СКД
   Это_mike
 
3 - 13.10.16 - 09:05
чичло..
"Идет экзамен! Студент, сильно волнуясь, спрашивает у препода: - А писло чесать? Препод,подумав: - Писло?! Ну чеши, если тебе это помогает!"©
   sema76
 
4 - 13.10.16 - 09:59
???
   sema76
 
5 - 13.10.16 - 14:26
???
   sema76
 
6 - 13.10.16 - 16:49
Вычисляемые поля

Выражение


isNULL(ВычислитьВыражение("Минимум(Количество)", , "Иерархия"), 0)
   Windyhead
 
7 - 13.10.16 - 16:55
(2) проблема с запросами в СКД ?
   Windyhead
 
8 - 13.10.16 - 17:02
ВТИсходная
А,Признак2,7
А,Признак1,6
А,Признак8,6
А,Признак7,12
В,Признак2,100
В,Признак1,50
В,Признак3,21
В,Признак9,116
/////////


ВТМинимумы
Получаешь из исходной Поле1 и Значения которые группируешь используя МИНИМУМ

///
Итоговый запрос:

Выбрать Различные
ВТИсходная.Поле1,
 ВТМинимумы.Значение
Из ВТИсходная КАК ВТИсходная
ЛЕВОЕ Соединение ВТМинимумы КАК ВТМинимумы 
ПО ВТИсходная.Поле1=ВТМинимумы.Поле1


Как то так вкратце ))
   Windyhead
 
9 - 13.10.16 - 17:06
(8) хотя не херня, чет перемудрил под конец дня ))) можно же просто сгурппировать по Поле1  минимум(Значение) и все, откинув Признак
   sema76
 
10 - 17.10.16 - 08:51
(9) Через Минимум(Значение) пробовал делать, не получилось. Если откидываешь Признак, то происходит Группировка по Первому Полю и Сумма по Третьему Полю. Если оставляешь Признак, то ничего не меняется, естественно остается такое же количество строк.
Если бы надо было найти Минимум из всех строк не обращая внимания на Первое Поле, то можно было бы установить Порядок (Отсортировать) по Третьему Полю и выбрать Первую Строку.
Но проблема в том, что нужно найти минимум для Различных Строк по Первому Полю.
 
 Рекламное место пустует
   sema76
 
11 - 17.10.16 - 08:53
(10) А вот Выражение в (6) работает. Это для СКД.
Если это НЕ СКД, то данную Проблему решают через Итоги в Запросе.
   sema76
 
12 - 17.10.16 - 08:59
(11) Вот тут примерно НЕ для СКД. Но там проще ситуация нет Второго Поля как у меня.

v8: Замкнуло. Получить минимальное значение в запросе

Хотя там пишут, что использовать Итоги не желательно.
   catena
 
13 - 17.10.16 - 09:16
Что за бред? Группировка+минимум.

Выбрать Поле1, Минимум(Поле3) поместить ВТ из Таблица Сгруппировать по Поле1
   sema76
 
14 - 17.10.16 - 09:58
(13) Вот такой бред. Поэкспериментируй и увидишь.
Если такой запрос:

ВЫБРАТЬ
    ВТ.Номенклатура,
    МИНИМУМ(ВТ.Количество) КАК Количество
ИЗ
    ВТ КАК ВТ

СГРУППИРОВАТЬ ПО
    ВТ.Номенклатура

то суммирует по Номенклатура не обращая внимания на МИНИМУМ.

Если такой запрос:

ВЫБРАТЬ
    ВТ.Номенклатура,
    ВТ.Признак,
    МИНИМУМ(ВТ.Количество) КАК Количество
ИЗ
    ВТ КАК ВТ

СГРУППИРОВАТЬ ПО
    ВТ.Номенклатура,
    ВТ.Признак    

то тоже ничего не получается, по Номенклатура выводится несколько строк в количестве различных Признак.
   chelentano
 
15 - 17.10.16 - 10:20
(14) >>суммирует по Номенклатура не обращая внимания на МИНИМУМ.

Не верю
   Митяйский
 
16 - 17.10.16 - 10:32
ВЫБРАТЬ
    "А" КАК АБВ,
    "Признак2" КАК Признаки,
    7 КАК Коэф
     ПОМЕСТИТЬ ВТИсходная

     ОБЪЕДИНИТЬ ВСЕ

     ВЫБРАТЬ
    "А",
    "Признак1",
    6

     ОБЪЕДИНИТЬ ВСЕ

     ВЫБРАТЬ
    "А",
    "Признак8",
    6

     ОБЪЕДИНИТЬ ВСЕ

     ВЫБРАТЬ
    "А",
    "Признак7",
    12

     ОБЪЕДИНИТЬ ВСЕ

     ВЫБРАТЬ
    "В",
    "Признак2",
    100

     ОБЪЕДИНИТЬ ВСЕ

     ВЫБРАТЬ
    "В",
    "Признак1",
    50

     ОБЪЕДИНИТЬ ВСЕ

     ВЫБРАТЬ
    "В",
    "Признак3",
    21

     ОБЪЕДИНИТЬ ВСЕ

     ВЫБРАТЬ
    "В",
    "Признак9",
    116
     ;

    ////////////////////////////////////////////////////////////////////////////////

     ВЫБРАТЬ
    ВТИсходная.АБВ,
    МИНИМУМ(ВТИсходная.Коэф) КАК Коэф
     ПОМЕСТИТЬ ВТФинал
     ИЗ
    ВТИсходная КАК ВТИсходная

     СГРУППИРОВАТЬ ПО
    ВТИсходная.АБВ
     ;

    ////////////////////////////////////////////////////////////////////////////////

     ВЫБРАТЬ
    ВТФинал.АБВ,
    ВТФинал.Коэф
     ИЗ
    ВТФинал КАК ВТФинал
   Митяйский
 
17 - 17.10.16 - 10:33
на выходе выдает А 6, В 21

Так что с СКД все в порядке
   catena
 
18 - 17.10.16 - 11:07
(14)Скрин в студию.
   sema76
 
19 - 17.10.16 - 13:46
(17) Не знаю в чем у меня проблема. Делаю такой же запрос, но агрегатные функции видят как одну строку, как будто сначала группирует по сумме. Если беру функцию Количество Различных, Результат 1, т.е. видит одну строку. Единственно, что у меня тип данных по Первому и Второму ссылочный.
Попробую сейчас со справочником каким-нибудь поэкспериментировать.
   sema76
 
20 - 17.10.16 - 14:24
(17) (18) Вот такой запрос протестируйте. Получите не Минимум, а Сумму.

ВЫБРАТЬ
    МатериалыВЭксплуатацииОбороты.Номенклатура,
    СУММА(МатериалыВЭксплуатацииОбороты.КоличествоОборот) КАК КоличествоОборот,
    МатериалыВЭксплуатацииОбороты.Подразделение
ПОМЕСТИТЬ ВТ
ИЗ
    РегистрНакопления.МатериалыВЭксплуатации.Обороты КАК МатериалыВЭксплуатацииОбороты

СГРУППИРОВАТЬ ПО
    МатериалыВЭксплуатацииОбороты.Подразделение,
    МатериалыВЭксплуатацииОбороты.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ.Номенклатура,
    МИНИМУМ(ВТ.КоличествоОборот) КАК КоличествоОборот
ИЗ
    ВТ КАК ВТ

СГРУППИРОВАТЬ ПО
    ВТ.Номенклатура
   catena
 
21 - 17.10.16 - 14:32
(20)А у меня минимум получается.
   sema76
 
22 - 17.10.16 - 14:38
(21) В СКД? Посмотри повнимательнее. Я делаю в СКД у меня суммирует. Если выберешь Функцию Количество различных, то получишь 1,000 т.е. одну строку.
   sema76
 
23 - 17.10.16 - 14:39
(22) Естественно одну строку с Суммой, а не с Минимумом)
   catena
 
24 - 17.10.16 - 14:41
(22)СКД))) В СКД выражениями, сказали же в самом начале. Ты ж в (11) просил для не СКД. СКД оптимизирует текст запроса и "ненужные" поля отсекает в самом начале. Т.е. в первой виртуальной таблице.
   sema76
 
25 - 17.10.16 - 14:47
(24) Я то как раз делаю в СКД. Мне и нужно было сделать в СКД. Я и сделал воспользовавшись:

Вычисляемые поля
Путь к данным
Поле1

Выражение
isNULL(ВычислитьВыражение("Минимум(КоличествоОборот)", , "Иерархия"), 0)

Заголовок
Поле1


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует