|
СКД Виртуальная Таблица Выбрать Строку с Минимальным Числом | ☑ | ||
---|---|---|---|---|
0
sema76
13.10.16
✎
09:01
|
Есть таблица
А,Признак2,7 А,Признак1,6 А,Признак8,6 А,Признак7,12 В,Признак2,100 В,Признак1,50 В,Признак3,21 В,Признак9,116 Нужно получить таблицу А,6 В,21 И закинуть ее в ВТ |
|||
1
Это_mike
13.10.16
✎
09:03
|
а запросом почему нельзя?
|
|||
2
sema76
13.10.16
✎
09:04
|
(1) Отчет на СКД
|
|||
3
Это_mike
13.10.16
✎
09:05
|
чичло..
"Идет экзамен! Студент, сильно волнуясь, спрашивает у препода: - А писло чесать? Препод,подумав: - Писло?! Ну чеши, если тебе это помогает!"© |
|||
4
sema76
13.10.16
✎
09:59
|
???
|
|||
5
sema76
13.10.16
✎
14:26
|
???
|
|||
6
sema76
13.10.16
✎
16:49
|
Вычисляемые поля
Выражение isNULL(ВычислитьВыражение("Минимум(Количество)", , "Иерархия"), 0) |
|||
7
Windyhead
13.10.16
✎
16:55
|
(2) проблема с запросами в СКД ?
|
|||
8
Windyhead
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 Как то так вкратце )) |
|||
9
Windyhead
13.10.16
✎
17:06
|
(8) хотя не херня, чет перемудрил под конец дня ))) можно же просто сгурппировать по Поле1 минимум(Значение) и все, откинув Признак
|
|||
10
sema76
17.10.16
✎
08:51
|
(9) Через Минимум(Значение) пробовал делать, не получилось. Если откидываешь Признак, то происходит Группировка по Первому Полю и Сумма по Третьему Полю. Если оставляешь Признак, то ничего не меняется, естественно остается такое же количество строк.
Если бы надо было найти Минимум из всех строк не обращая внимания на Первое Поле, то можно было бы установить Порядок (Отсортировать) по Третьему Полю и выбрать Первую Строку. Но проблема в том, что нужно найти минимум для Различных Строк по Первому Полю. |
|||
11
sema76
17.10.16
✎
08:53
|
(10) А вот Выражение в (6) работает. Это для СКД.
Если это НЕ СКД, то данную Проблему решают через Итоги в Запросе. |
|||
12
sema76
17.10.16
✎
08:59
|
(11) Вот тут примерно НЕ для СКД. Но там проще ситуация нет Второго Поля как у меня.
v8: Замкнуло. Получить минимальное значение в запросе Хотя там пишут, что использовать Итоги не желательно. |
|||
13
catena
17.10.16
✎
09:16
|
Что за бред? Группировка+минимум.
Выбрать Поле1, Минимум(Поле3) поместить ВТ из Таблица Сгруппировать по Поле1 |
|||
14
sema76
17.10.16
✎
09:58
|
(13) Вот такой бред. Поэкспериментируй и увидишь.
Если такой запрос: ВЫБРАТЬ ВТ.Номенклатура, МИНИМУМ(ВТ.Количество) КАК Количество ИЗ ВТ КАК ВТ СГРУППИРОВАТЬ ПО ВТ.Номенклатура то суммирует по Номенклатура не обращая внимания на МИНИМУМ. Если такой запрос: ВЫБРАТЬ ВТ.Номенклатура, ВТ.Признак, МИНИМУМ(ВТ.Количество) КАК Количество ИЗ ВТ КАК ВТ СГРУППИРОВАТЬ ПО ВТ.Номенклатура, ВТ.Признак то тоже ничего не получается, по Номенклатура выводится несколько строк в количестве различных Признак. |
|||
15
chelentano
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
Так что с СКД все в порядке |
|||
18
catena
17.10.16
✎
11:07
|
(14)Скрин в студию.
|
|||
19
sema76
17.10.16
✎
13:46
|
(17) Не знаю в чем у меня проблема. Делаю такой же запрос, но агрегатные функции видят как одну строку, как будто сначала группирует по сумме. Если беру функцию Количество Различных, Результат 1, т.е. видит одну строку. Единственно, что у меня тип данных по Первому и Второму ссылочный.
Попробую сейчас со справочником каким-нибудь поэкспериментировать. |
|||
20
sema76
17.10.16
✎
14:24
|
(17) (18) Вот такой запрос протестируйте. Получите не Минимум, а Сумму.
ВЫБРАТЬ МатериалыВЭксплуатацииОбороты.Номенклатура, СУММА(МатериалыВЭксплуатацииОбороты.КоличествоОборот) КАК КоличествоОборот, МатериалыВЭксплуатацииОбороты.Подразделение ПОМЕСТИТЬ ВТ ИЗ РегистрНакопления.МатериалыВЭксплуатации.Обороты КАК МатериалыВЭксплуатацииОбороты СГРУППИРОВАТЬ ПО МатериалыВЭксплуатацииОбороты.Подразделение, МатериалыВЭксплуатацииОбороты.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ.Номенклатура, МИНИМУМ(ВТ.КоличествоОборот) КАК КоличествоОборот ИЗ ВТ КАК ВТ СГРУППИРОВАТЬ ПО ВТ.Номенклатура |
|||
21
catena
17.10.16
✎
14:32
|
(20)А у меня минимум получается.
|
|||
22
sema76
17.10.16
✎
14:38
|
(21) В СКД? Посмотри повнимательнее. Я делаю в СКД у меня суммирует. Если выберешь Функцию Количество различных, то получишь 1,000 т.е. одну строку.
|
|||
23
sema76
17.10.16
✎
14:39
|
(22) Естественно одну строку с Суммой, а не с Минимумом)
|
|||
24
catena
17.10.16
✎
14:41
|
(22)СКД))) В СКД выражениями, сказали же в самом начале. Ты ж в (11) просил для не СКД. СКД оптимизирует текст запроса и "ненужные" поля отсекает в самом начале. Т.е. в первой виртуальной таблице.
|
|||
25
sema76
17.10.16
✎
14:47
|
(24) Я то как раз делаю в СКД. Мне и нужно было сделать в СКД. Я и сделал воспользовавшись:
Вычисляемые поля Путь к данным Поле1 Выражение isNULL(ВычислитьВыражение("Минимум(КоличествоОборот)", , "Иерархия"), 0) Заголовок Поле1 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |