powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите с запросом
2 сообщений из 2, страница 1 из 1
Помогите с запросом
    #32495683
Valerik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ можно ли этот запрос оптимизировать.
Смысл такой есть таблица дистребьютеров. Со следующими полями
Код дистребьютера, код спонсора (под которым он подписан), LFT,RGT,Фио

Таблица `Расход Магазины`:
Номер операции, Дата, Код Дистребьютера, код товара, количество

Таблица товаров:
Код Товара, наименование, цена, баллы.

И таблица `Система квалификаций`:
Код квалификации, наименование, Объем личных покупок, Объем Лично групповых покупок, Объемная Скидка
Где Объем личных покупок – сумма балов по всем покупка совершенных дистребьютером в течение месяца.
Объем Лично групповых покупок - сумма балов по всем покупка совершенных дистребьютером и подписанных по ним дистребьютеров в течение месяца.
Объемная скидка – скидка Объем Лично групповых покупок в (%)

В общем нужно получить такую таблицу.
Код дистребьютера, Объем личных покупок, Объем Лично групповых покупок, Код квалификации, Объемная Скидка.
Я тут попробовал тут, кое что сделать, вроде бы получилось только при большой базе дистребьютеров слишком долго читает.
Народ помогите оптимизировать этот запрос что бы работал по быстрей или посоветуйте другой способ расчета.

SELECT Дистребьютеры.`Код Дистребьютера`,
(SELECT SUM(`Расход Магазины`.Количество * Товары.Баллы)
FROM `Расход Магазины`, Товары
WHERE Товары.`Код Товара` = `Расход Магазины`.`Код Товара`
AND
Дистребьютеры.`Код Дистребьютера` = `Расход Магазины`.`Код Дистребьютера`)
AS LO,

(SELECT SUM(RM.Количество * TV.Баллы)
FROM `Расход Магазины` AS RM, Товары AS TV
WHERE TV.`Код Товара` = RM.`Код Товара` AND
RM.`Код Дистребьютера` IN
(SELECT x.`Код Дистребьютера`
FROM Дистребьютеры AS x
WHERE x.LFT >= Дистребьютеры.LFT AND
x.RGT <= Дистребьютеры.RGT)) AS LGO,

`Система квалификаций`.`Код Квалификации`,
`Система квалификаций`.`Объемная скидка(в % от ЛГО)`
FROM Дистребьютеры, `Система квалификаций`
WHERE `Система квалификаций`.`Объемная скидка(в % от ЛГО)` =
(SELECT MAX(y.`Объемная скидка(в % от ЛГО)`)
FROM `Система квалификаций` AS y
WHERE (y.`Личный оборот, очков (минимум)` <=
(SELECT SUM(`Расход Магазины`.Количество * Товары.Баллы)
FROM `Расход Магазины`, Товары
WHERE Товары.`Код Товара` = `Расход Магазины`.`Код Товара`
AND
Дистребьютеры.`Код Дистребьютера` = `Расход Магазины`.`Код Дистребьютера`)
AND
y.`Лично-групповой оборот, очков(минимум)` <=
(SELECT SUM(RM.Количество * TV.Баллы)
FROM `Расход Магазины` AS RM,
Товары AS TV
WHERE TV.`Код Товара` = RM.`Код Товара` AND
RM.`Код Дистребьютера` IN
(SELECT x.`Код Дистребьютера`
FROM Дистребьютеры AS x
WHERE x.LFT >= Дистребьютеры.LFT AND
x.RGT <= Дистребьютеры.RGT))))
...
Рейтинг: 0 / 0
Помогите с запросом
    #32495718
Valerik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот я тут кое что сдела вот что получилось работает быстрей но нет
Код Квалификации
Может кто подскажет как сделать по быстрому.
SELECT buyr.`Код Дистребьютера`, LO, LGO,
MAX(`Система квалификаций`.`Объемная скидка(в % от ЛГО)`)
AS `Объемная скидка(в % от ЛГО)`
FROM (SELECT Дистребьютеры.`Код Дистребьютера`,
(SELECT SUM(`Расход Магазины`.Количество * Товары.Баллы)
FROM `Расход Магазины`, Товары
WHERE Товары.`Код Товара` = `Расход Магазины`.`Код Товара`
AND
Дистребьютеры.`Код Дистребьютера` = `Расход Магазины`.`Код Дистребьютера`)
AS LO,
(SELECT SUM(RM.Количество * TV.Баллы)
FROM `Расход Магазины` AS RM,
Товары AS TV
WHERE TV.`Код Товара` = RM.`Код Товара` AND
RM.`Код Дистребьютера` IN
(SELECT x.`Код Дистребьютера`
FROM Дистребьютеры AS x
WHERE x.LFT >= Дистребьютеры.LFT AND
x.RGT <= Дистребьютеры.RGT))
AS LGO
FROM Дистребьютеры) AS buyr,
`Система квалификаций`
WHERE `Система квалификаций`.`Личный оборот, очков (минимум)`
<= buyr.LO AND
`Система квалификаций`.`Лично-групповой оборот, очков(минимум)`
<= LGO
GROUP BY buyr.`Код Дистребьютера`, LO, LGO
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]