Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.11;
Скачать: CL | DM;

Вниз

Запросы   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
2-1207943501
Megabyte
2008-04-11 23:51
2008.05.11
Скрытый ввод - готовый компонент


10-1145888035
Ling
2006-04-24 18:13
2008.05.11
Диаграммы в Excell


2-1207893241
F@T@L_Err0r
2008-04-11 09:54
2008.05.11
Сообщения виндовс


15-1206972639
Сатир
2008-03-31 18:10
2008.05.11
Вопрос знатокам Винды ХР


2-1207804307
Chorniy
2008-04-10 09:11
2008.05.11
ReadProcessMemory читает всегда с одного адреса... где-то ошибка?