Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
2-1208083962
Rust
2008-04-13 14:52
2008.05.11
handle


15-1206869807
sauron
2008-03-30 13:36
2008.05.11
Чьё у меня с монитором?


15-1206907417
rgrgre
2008-03-31 00:03
2008.05.11
Звук и в наушниках и так


4-1188469370
istok
2007-08-30 14:22
2008.05.11
проблема с unhook...


2-1207832097
Polar
2008-04-10 16:54
2008.05.11
Направление текста в QRLabel




   Наверх