![]() |
![]() |
|
Замкнуло. Получить минимальное значение в запросе | ☑ | ||
---|---|---|---|---|
0
FarFar
08.11.06
✎
17:14
|
Доброе время суток!
К вечеру косит шиза. У меня есть 2 справочника: ТМЦ и ЕдиницыИзмерения. ТМЦ является владельцем для Единиц. В справочнике "Единицы" один реквизит "Коэффициент" (тип число). Мне нужно для каждого ТМЦ получить значение Единицы с минимальным коэффициентом. Причем, желательно, если в выборку пойдет ТМЦ.Ссылка, а не Единица.Владелец.Ссылка (чтобы меньше изменений делать в сложном запросе). Хелп, плиз! FarFar |
|||
1
PR
08.11.06
✎
17:18
|
Выборка по единицам, группировка по владельцу, агрегатная функция минимум по коэффициенту
|
|||
2
FarFar
08.11.06
✎
17:34
|
Пример: Для ТМЦ "Мышь" ввел 2 единицы: "шт" с коэфф. =1 и "шт2" с коэфф. = 0.5
Запрос: ВЫБРАТЬ ЕдиницыИзмерения.Владелец КАК Номенклатура, ЕдиницыИзмерения.Ссылка, МИНИМУМ(ЕдиницыИзмерения.Коэффициент) КАК Коэффициент ИЗ Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения ГДЕ ЕдиницыИзмерения.Владелец = &номенклатура СГРУППИРОВАТЬ ПО ЕдиницыИзмерения.Владелец, ЕдиницыИзмерения.Ссылка Выдает 2 строки с обоими единицами измерения |
|||
3
PR
08.11.06
✎
17:40
|
А причем здесь СГРУППИРОВАТЬ?
Тебе нужны ИТОГИ. |
|||
4
asady
08.11.06
✎
17:41
|
(2)
ВЫБРАТЬ ЕдиницыИзмерения.Владелец КАК Номенклатура, ЕдиницыИзмерения.Ссылка, МИНИМУМ(ЕдиницыИзмерения.Коэффициент) КАК Коэффициент ИЗ Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения ГДЕ ЕдиницыИзмерения.Владелец = &номенклатура |
|||
5
PR
08.11.06
✎
17:43
|
(4) Неправильно, будет записей столько, сколько единиц, а не столько, сколько владельцев.
Тогда уж без ЕдиницыИзмерения.Ссылка, |
|||
6
FarFar
08.11.06
✎
17:44
|
(3) То же обе вылезает, если :
ВЫБРАТЬ ЕдиницыИзмерения.Владелец КАК Номенклатура, ЕдиницыИзмерения.Ссылка КАК Ссылка, ЕдиницыИзмерения.Коэффициент КАК Коэффициент ИЗ Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения ГДЕ ЕдиницыИзмерения.Владелец = &номенклатура ИТОГИ МИНИМУМ(Коэффициент) ПО Номенклатура, Ссылка ИТОГИ не желательно использовать. Это подзапрос -)) |
|||
7
FarFar
08.11.06
✎
17:45
|
(6) и коммент. ЕдиницыИзмерения.Ссылка КАК Ссылка не решает дела
|
|||
8
asady
08.11.06
✎
17:45
|
(5) согласен
проще так: ВЫБРАТЬ ЕдиницыИзмерения.Владелец КАК Номенклатура, МИНИМУМ(ЕдиницыИзмерения.Коэффициент) КАК Коэффициент ИЗ Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения ГДЕ ЕдиницыИзмерения.Владелец = &номенклатура |
|||
9
PR
08.11.06
✎
17:46
|
Да блин, не надо выбирать единицу измерения, когда ее по условию уже не должно быть!
ВЫБРАТЬ ЕдиницыИзмерения.Владелец КАК Номенклатура, ЕдиницыИзмерения.Коэффициент КАК Коэффициент ИЗ Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения ГДЕ ЕдиницыИзмерения.Владелец = &номенклатура ИТОГИ МИНИМУМ(Коэффициент) ПО Номенклатура |
|||
10
PR
08.11.06
✎
17:47
|
(8) Не знаю, может и так сработает, не проверял, влом :o)
Но есть подозрение, что нет :o) |
|||
11
FarFar
08.11.06
✎
17:48
|
(9) Результат:
Номенклатура Коэффициент A4Tech KBS-6 PS/2 0,500 A4Tech KBS-6 PS/2 1,000 A4Tech KBS-6 PS/2 0,500 Не летит паровоз |
|||
12
PR
08.11.06
✎
17:49
|
А ты выборку делаешь по группировке или как?
|
|||
13
FarFar
08.11.06
✎
17:53
|
(12) в (11) - результат твоего запроса в (9)
|
|||
14
FarFar
08.11.06
✎
17:54
|
то есть, я этот запрос исполнял не как вложенный, а просто так
|
|||
15
asady
08.11.06
✎
18:05
|
(14)
вот этот запрос прекрасно отрабатывает и дает одну строку: ВЫБРАТЬ ЕдиницыИзмерения.Владелец.Ссылка, МИНИМУМ(ЕдиницыИзмерения.Коэффициент) КАК Коэффициент ИЗ Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения ГДЕ ЕдиницыИзмерения.Владелец = &Номенклатура СГРУППИРОВАТЬ ПО ЕдиницыИзмерения.Владелец.Ссылка |
|||
16
Neco
08.11.06
✎
18:07
|
(15) Лучше сгруппировать по ЕдиницыИзмерения.Ссылка
|
|||
17
FarFar
08.11.06
✎
18:13
|
(16) не, по Единице измерения сгруппировать не получается.
(15) Asady, так так хорошо. Осталось только придумать, можно ли туда еще саму единицу привернуть, чтобы тоже была в результате выборки. |
|||
18
FarFar
08.11.06
✎
18:14
|
(15) Сэнкс!
|
|||
19
PR
08.11.06
✎
18:37
|
(13) Мало того, что запрос должен быть таким, еще и выбирать нужно обходом по группировке, а не просто так.
(17) Единицу туда прикрутить нельзя ПРИНЦИПИАЛЬНО, ибо после СГРУППИРОВАТЬ ее уже нет! Только если с помощью левого соединения с единицами как-нить попробовать, где соединение по коэффициенту, но при двух единицах с одинаковыми коэффициентами непонятно, какую брать :o) |
|||
20
asady
08.11.06
✎
18:53
|
(17)
тогда можно и так: ВЫБРАТЬ ПЕРВЫЕ 1 ЕдиницыИзмерения.Ссылка КАК Ссылка, ЕдиницыИзмерения.Коэффициент КАК Коэффициент, ЕдиницыИзмерения.Владелец.Ссылка ИЗ Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения ГДЕ ЕдиницыИзмерения.Владелец = &Номенклатура СГРУППИРОВАТЬ ПО ЕдиницыИзмерения.Ссылка, ЕдиницыИзмерения.Коэффициент УПОРЯДОЧИТЬ ПО Коэффициент |
|||
21
Neco
08.11.06
✎
18:54
|
(20) "СГРУППИРОВАТЬ ПО" уже не нужно
|
|||
22
asady
08.11.06
✎
18:55
|
(21) согласен - работает и без СГРУППИРОВАТЬ
|
|||
23
Neco
08.11.06
✎
18:55
|
ИМХО самый лучший вариант в итогами в (9) нужно только выборку делать правильно. Правда в подзапросе не использовать.
|
|||
24
PR
08.11.06
✎
19:24
|
(23) Ну почему, (15) универсальней. Если уж он работает :))
Вариант в (9) позволит разве что при необходимости кроме итоговых записей по владельцам перебрать дальше еще детальные записи по единицам. Но не более того. |
|||
25
PR
08.11.06
✎
19:25
|
(+24) Это ессно, если в выборку добавить поле ссылка на единицу измерения :o)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |