Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > Помогите запрос написать!


Автор: Адель 26.9.2005, 12:17
Пожалуйста помогите запрос написать, не используя представления.

Вывести блюдо, имеющее минимальную калорийность.

Есть две таблицы: Bluda и Producty. Таблица Sostav - ассоциативная таблица между ними.
Таблица Bluda содержит поля Bludo, Vid и первичный ключ bl.
Таблица Producty содержит поля Product, belki, Zhyry, yglevody и первичный ключ pr.
Ассоциативная таблица Sostav содержит поля: внешний ключ bl, внешний ключ pr и поле ves.

Вот запрос, который выводит калорийность каждого блюда:
select bludo, sum(((belki+yglevody)*4.1+zhyry*9.3)/1000*ves)
from producty, sostav, bluda
where bluda.bl=sostav.bl and sostav.pr=producty.pr
group by bludo;

Автор: Адель 26.9.2005, 12:18
Это все в IB Consol 6

Автор: SergKO 26.9.2005, 13:50
Должно быть что-то вроде

Код

SELECT MIN(calory) AS calory_content FROM
    (SELECT bludo, sum(((belki+yglevody)*4.1+zhyry*9.3)/1000*ves) AS calory
    FROM producty INNER JOIN
    sostav ON sostav.pr=producty.pr INNER JOIN
    bluda ON bluda.bl=sostav.bl
    GROUP BY bludo) t

Автор: chief39 27.9.2005, 16:54

Код


    set rowcount 1
    select    bludo, sum(((belki+yglevody)*4.1+zhyry*9.3)/1000*ves)
    FROM    producty        prod,
            sostav            sost,
            bluda            blud
    where    prod.pr        = sost.pr
    and        sost.bl        = blud.bl
    group by bludo
    order by sum(((belki+yglevody)*4.1+zhyry*9.3)/1000*ves) asc
    set rowcount 0



не помню, насчёт роукаунта именно в IB, но попробуй. Может синтаксис сет'а чуть другой будет

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)