Форум: "Начинающим";
Текущий архив: 2008.05.11;
Скачать: [xml.tar.bz2];
ВнизЗапросы Найти похожие ветки
← →
dumka (2008-04-10 16:48) [0]Привет всем!
Весь день пытаюсь решить задачу.
Для каждого из товара в таблице склад находит самый дешевый и самый дорогой заменитель, той же самой категории(колонка Kod_tov).Запрос должен выдать столько же записей, сколько их есть в таблице склад. В таком виде:
strih_kod stoim_zac kod_tov max_strih_kod Max_st min_strih_kod Min_st
1 18р 1 2 40р. 24 4р.
2 40р. 1 2 40р. 24 4р.
24 4р. 1 2 40р. 24 4р.
Я сделала так:
SELECT sklad.kod_tov, Min(sklad.stoim_zac) AS [Min-stoim_zac]
FROM sklad
GROUP BY sklad.kod_tov;
SELECT sklad.kod_tov, Max(sklad.stoim_zac) AS Max_st
FROM sklad
GROUP BY sklad.kod_tov;
А за тем
SELECT sklad.strih_kod, sklad.stoim_zac, sklad.kod_tov, min.[Min-stoim_zac], max.Max_st
FROM [min] INNER JOIN ([max] INNER JOIN sklad ON max.kod_tov = sklad.kod_tov) ON min.kod_tov = sklad.kod_tov;
не могу внести max_strih_kod и mix_strih_kod
← →
Sergey13 © (2008-04-10 16:56) [1]> [0] dumka (10.04.08 16:48)
СУБД?
можно попробовать примерно так
SELECT sklad.strih_kod, sklad.stoim_zac, sklad.kod_tov, (SELECT Min(sklad.stoim_zac) FROM sklad s2 where s2.kod_tov = sklad.kod_tov),
(SELECT Max(sklad.stoim_zac) FROM sklad s3 where s3.kod_tov = sklad.kod_tov)
FROM sklad
← →
dumka (2008-04-10 16:58) [2]
> СУБД?
Access
← →
dumka (2008-04-10 17:01) [3]strih_kod stoim_zac kod_tov max_strih_kod Max_st min_strih_kod Min_st
1 18р 1 40р. 4р.
2 40р. 1 40р. 4р.
24 4р. 1 40р. 4р.
Вот такая версия уже есть
← →
dumka (2008-04-10 17:12) [4]
> Sergey13
Твоя версия работает так же как и моя, но внести max_strih_kod и mix_strih_kod не получается
← →
Sergey13 © (2008-04-11 08:39) [5]> [4] dumka (10.04.08 17:12)
Добавь еще по подзапросу на вытаскивание кодов. Запросы практически аналогичны.
Можно еще заняться денормализацией. 8-)
В таблице категорий хранить эти минимумы и максимумы. К сожалению в аксесе (насколько я знаю) нет тригеров, поэтому придется следить за целостностью данных в клиенте, что не очень хорошо. Но, как вариант можно посмотреть в эту сторону. Кстати, в этом случае запрос сильно упростится и станет намного производительнее. Если таких запросов много - можно получить существенный прирост производительности.
← →
dumka (2008-04-11 09:36) [6]
> Можно еще заняться денормализацией. 8-)
> В таблице категорий хранить эти минимумы и максимумы.
Дело в том, что я не могу менять структуры, это задание как тренинг перед олимпиадой. В прошлом году его никто не решил.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.05.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c