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

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

Замкнуло. Получить минимальное значение в запросе
Я
   FarFar
 
08.11.06 - 17:14
Доброе время суток!
К вечеру косит шиза. У меня есть 2 справочника: ТМЦ и ЕдиницыИзмерения. ТМЦ является владельцем для Единиц. В справочнике "Единицы" один реквизит "Коэффициент" (тип число).

Мне нужно для каждого ТМЦ получить значение Единицы с минимальным коэффициентом. Причем, желательно, если в выборку пойдет ТМЦ.Ссылка, а не Единица.Владелец.Ссылка (чтобы меньше изменений делать в сложном запросе).

Хелп, плиз!
FarFar
   PR
 
1 - 08.11.06 - 17:18
Выборка по единицам, группировка по владельцу, агрегатная функция минимум по коэффициенту
   FarFar
 
2 - 08.11.06 - 17:34
Пример: Для ТМЦ "Мышь" ввел 2 единицы: "шт" с коэфф. =1 и "шт2" с коэфф. = 0.5
Запрос:
ВЫБРАТЬ
    ЕдиницыИзмерения.Владелец КАК Номенклатура,
    ЕдиницыИзмерения.Ссылка,
    МИНИМУМ(ЕдиницыИзмерения.Коэффициент) КАК Коэффициент
ИЗ
    Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
ГДЕ
    ЕдиницыИзмерения.Владелец = &номенклатура

СГРУППИРОВАТЬ ПО
    ЕдиницыИзмерения.Владелец,
    ЕдиницыИзмерения.Ссылка

Выдает 2 строки с обоими единицами измерения
   PR
 
3 - 08.11.06 - 17:40
А причем здесь СГРУППИРОВАТЬ?
Тебе нужны ИТОГИ.
   asady
 
4 - 08.11.06 - 17:41
(2)
ВЫБРАТЬ
    ЕдиницыИзмерения.Владелец КАК Номенклатура,
    ЕдиницыИзмерения.Ссылка,
    МИНИМУМ(ЕдиницыИзмерения.Коэффициент) КАК Коэффициент
ИЗ
    Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
ГДЕ
    ЕдиницыИзмерения.Владелец = &номенклатура
   PR
 
5 - 08.11.06 - 17:43
(4) Неправильно, будет записей столько, сколько единиц, а не столько, сколько владельцев.
Тогда уж без ЕдиницыИзмерения.Ссылка,
   FarFar
 
6 - 08.11.06 - 17:44
(3) То же обе вылезает, если :
ВЫБРАТЬ
    ЕдиницыИзмерения.Владелец КАК Номенклатура,
    ЕдиницыИзмерения.Ссылка КАК Ссылка,
    ЕдиницыИзмерения.Коэффициент КАК Коэффициент
ИЗ
    Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
ГДЕ
    ЕдиницыИзмерения.Владелец = &номенклатура
ИТОГИ
    МИНИМУМ(Коэффициент)
ПО
    Номенклатура,
    Ссылка

ИТОГИ не желательно использовать. Это подзапрос -))
   FarFar
 
7 - 08.11.06 - 17:45
(6) и коммент. ЕдиницыИзмерения.Ссылка КАК Ссылка не решает дела
   asady
 
8 - 08.11.06 - 17:45
(5) согласен
проще так:
ВЫБРАТЬ
    ЕдиницыИзмерения.Владелец КАК Номенклатура,
    МИНИМУМ(ЕдиницыИзмерения.Коэффициент) КАК Коэффициент
ИЗ
    Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
ГДЕ
    ЕдиницыИзмерения.Владелец = &номенклатура
   PR
 
9 - 08.11.06 - 17:46
Да блин, не надо выбирать единицу измерения, когда ее по условию уже не должно быть!
ВЫБРАТЬ
    ЕдиницыИзмерения.Владелец КАК Номенклатура,
    ЕдиницыИзмерения.Коэффициент КАК Коэффициент
ИЗ
    Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
ГДЕ
    ЕдиницыИзмерения.Владелец = &номенклатура
ИТОГИ
    МИНИМУМ(Коэффициент)
ПО
   Номенклатура
   PR
 
10 - 08.11.06 - 17:47
(8) Не знаю, может и так сработает, не проверял, влом :o)
Но есть подозрение, что нет :o)
   FarFar
 
11 - 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

Не летит паровоз
   PR
 
12 - 08.11.06 - 17:49
А ты выборку делаешь по группировке или как?
   FarFar
 
13 - 08.11.06 - 17:53
(12) в (11) - результат твоего запроса в (9)
   FarFar
 
14 - 08.11.06 - 17:54
то есть, я этот запрос исполнял не как вложенный, а просто так
   asady
 
15 - 08.11.06 - 18:05
(14)

вот этот запрос прекрасно отрабатывает и дает одну строку:

ВЫБРАТЬ
    ЕдиницыИзмерения.Владелец.Ссылка,
    МИНИМУМ(ЕдиницыИзмерения.Коэффициент) КАК Коэффициент
ИЗ
    Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
ГДЕ
    ЕдиницыИзмерения.Владелец = &Номенклатура

СГРУППИРОВАТЬ ПО
    ЕдиницыИзмерения.Владелец.Ссылка
   Neco
 
16 - 08.11.06 - 18:07
(15) Лучше сгруппировать по ЕдиницыИзмерения.Ссылка
   FarFar
 
17 - 08.11.06 - 18:13
(16) не, по Единице измерения сгруппировать не получается.

(15) Asady, так так хорошо. Осталось только придумать, можно ли туда еще саму единицу привернуть, чтобы тоже была в результате выборки.
   FarFar
 
18 - 08.11.06 - 18:14
(15) Сэнкс!
   PR
 
19 - 08.11.06 - 18:37
(13) Мало того, что запрос должен быть таким, еще и выбирать нужно обходом по группировке, а не просто так.
(17) Единицу туда прикрутить нельзя ПРИНЦИПИАЛЬНО, ибо после СГРУППИРОВАТЬ ее уже нет! Только если с помощью левого соединения с единицами как-нить попробовать, где соединение по коэффициенту, но при двух единицах с одинаковыми коэффициентами непонятно, какую брать :o)
   asady
 
20 - 08.11.06 - 18:53
(17)
тогда можно и так:

ВЫБРАТЬ ПЕРВЫЕ 1
    ЕдиницыИзмерения.Ссылка КАК Ссылка,
    ЕдиницыИзмерения.Коэффициент КАК Коэффициент,
    ЕдиницыИзмерения.Владелец.Ссылка
ИЗ
    Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
ГДЕ
    ЕдиницыИзмерения.Владелец = &Номенклатура

СГРУППИРОВАТЬ ПО
    ЕдиницыИзмерения.Ссылка,
    ЕдиницыИзмерения.Коэффициент

УПОРЯДОЧИТЬ ПО
    Коэффициент
   Neco
 
21 - 08.11.06 - 18:54
(20) "СГРУППИРОВАТЬ ПО" уже не нужно
   asady
 
22 - 08.11.06 - 18:55
(21) согласен - работает и без СГРУППИРОВАТЬ
   Neco
 
23 - 08.11.06 - 18:55
ИМХО самый лучший вариант в итогами в (9) нужно только выборку делать правильно. Правда в подзапросе не использовать.
   PR
 
24 - 08.11.06 - 19:24
(23) Ну почему, (15) универсальней. Если уж он работает :))
Вариант в (9) позволит разве что при необходимости кроме итоговых записей по владельцам перебрать дальше еще детальные записи по единицам. Но не более того.
   PR
 
25 - 08.11.06 - 19:25
(+24) Это ессно, если в выборку добавить поле ссылка на единицу измерения :o)


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