Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сложный запрос на обновление / 13 сообщений из 13, страница 1 из 1
13.06.2019, 12:03
    #39826053
owl123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный запрос на обновление
Всем привет, ломаю голову уже пару часов. Суть задания, обновить данные в таблице, sql написать нужно одним куском.
Я сделала запрос на выборку со старой ценой и с добавлением поля новая цена(это и нужно обновить в таблице), но там условие если одно, то цену повышаем, если другое, то понижаем. И как это засунуть в запрос на обновление, вот это самое условие выбора, не могу понять(
Код: sql
1.
2.
3.
4.
5.
SELECT 
Наименование, 
Стоимость, 
iif((SELECT COUNT ([Категория услуги])/(SELECT COUNT ([Категория услуги]) FROM Заявки) FROM Заявки WHERE Заявки.[Категория услуги] Like 'Срочная')>(SELECT COUNT ([Категория услуги])/(SELECT COUNT ([Категория услуги]) FROM Заявки) FROM Заявки WHERE Заявки.[Категория услуги] Like 'Обычная'),Стоимость+Стоимость*0.25,Стоимость-Стоимость*0.15) AS [Новая цена]
FROM Услуги;
...
Рейтинг: 0 / 0
13.06.2019, 12:29
    #39826069
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный запрос на обновление
Формулируйте задачу, а не свою попытку её решить.

Структура таблицы.
Вменяемое и полное объяснение, что и по какому принципу обновлять.
Пример исходных данных и требуемого результата.

Желательно приложить БД (оставить только нужные таблицы, десяток записей в каждой, и показать результат для этих исходных данных) в ZIP.
...
Рейтинг: 0 / 0
13.06.2019, 12:32
    #39826073
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный запрос на обновление
owl123,
а Вы приложите БД и четко поясните что,чем и по какому условию обновить
...
Рейтинг: 0 / 0
13.06.2019, 12:42
    #39826085
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный запрос на обновление
owl123..Суть задания, обновить данные в таблице, sql написать нужно одним куском...
кстати запрос на обновление начинается с инструкции UPDATE
...
Рейтинг: 0 / 0
13.06.2019, 12:45
    #39826089
owl123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный запрос на обновление
спасибо за быстрый ответ и извините за корявое объяснение)
постараюсь сейчас раписать попонятнее...
в таблице услуги нужно обновить цену в зависимости от кол-ва заявок по категории(таблица заявки). т.е если заявок по категории услуги срочная-0.6(60%,соответственно срочных услуг больше)увеличиваем цену на 25%,если наоборот, снижаем на 15.
я сделала это запросиком на выборку, а написать на обновление не получается
...
Рейтинг: 0 / 0
13.06.2019, 12:50
    #39826093
owl123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный запрос на обновление
sdku,

понимаю, что с UPDATE)
но что писать в SET когда у меня условие выбора, так еще и "куча текста" нужного чтобы рассчитать новую цену
...
Рейтинг: 0 / 0
13.06.2019, 13:09
    #39826121
Сложный запрос на обновление
1. Ваш запрос на выборку будет не обновляемым. Переделать его в запрос на обновление не получится. Вас это устраивает?
2. Можно логику упростить до вида: Если кол-во записей в "Заявки" с категорией 'Срочная' больше, чем с категорией 'Обычная', то коэффициент 1,25, а иначе - 0,85?

Вероятно в запросе на обновление выражение должно быть таким:
Код: plsql
1.
2.
SET Стоимость = Стоимость * IIF(DCount('*','[Заявки]','[Категория услуги]=''Срочная''') >
DCount('*','[Заявки]','[Категория услуги]=''Обычная'''), 1.25, 0.85)
...
Рейтинг: 0 / 0
13.06.2019, 13:14
    #39826124
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный запрос на обновление
Кривцов АнатолийМожно логику упростить до вида: Если кол-во записей в "Заявки" с категорией 'Срочная' больше, чем с категорией 'Обычная', то коэффициент 1,25, а иначе - 0,85?
Чтобы получить 60%/40%, достаточно один из DCount() умножить либо поделить на 1,5. И ничего не надо упрощать.

owl123в таблице услуги нужно обновить цену в зависимости от кол-ва заявок по категории(таблица заявки). т.е если заявок по категории услуги срочная-0.6(60%,соответственно срочных услуг больше)увеличиваем цену на 25%,если наоборот, снижаем на 15.
А что делать с услугами, если по категории вообще нет ни одной заявки?
...
Рейтинг: 0 / 0
13.06.2019, 13:16
    #39826129
Сложный запрос на обновление
owl123если заявок по категории услуги срочная-0.6(60%,соответственно срочных услуг больше) У вас только две категории? Тогда почему это поле текстовое, а не логическое?
Попробуйте так:
Код: sql
1.
2.
SET Стоимость = Стоимость * IIF((DCount('*','[Заявки]','[Категория услуги]=''Срочная''') /
DCount('*','[Заявки]')) >=0.6, 1.25, 0.85)
...
Рейтинг: 0 / 0
13.06.2019, 13:26
    #39826135
owl123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный запрос на обновление
Спасибо,не думала про функцию DCount, сейчас попробую.
Запрос на выборку делала чтобы разобраться в задании.

А что делать с услугами, если по категории вообще нет ни одной заявки?
Отходить от темы и думать о таких вещах, думаю, не стоит, как и если категорий будет поровну, это уже если преподаватель скажет буду думать)
Мне просто интересно стало,захотелось разобраться и я попросила задания посложнее, теперь вот голову ломаю как бы успеть их все сделать)
...
Рейтинг: 0 / 0
13.06.2019, 13:35
    #39826140
owl123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный запрос на обновление
Вроде разобралась, огроменное всем спасибо за отклик, помощь и подсказки!
...
Рейтинг: 0 / 0
13.06.2019, 13:52
    #39826150
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный запрос на обновление
owl123в таблице услуги нужно обновить цену в зависимости от кол-ва заявок по категории(таблица заявки). т.е если заявок по категории услуги срочная-0.6(60%,соответственно срочных услуг больше)увеличиваем цену на 25%,если наоборот, снижаем на 15.
я сделала это запросиком на выборку, а написать на обновление не получаетсяне "вкурю" на какой момент определяется число заявок ( на каждый час,день,месяц) и как ведь в тбл.заявки нет даты\времени её подачи
...
Рейтинг: 0 / 0
13.06.2019, 14:22
    #39826161
owl123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный запрос на обновление
sdku,

кол-во всех заявок что есть в бд
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сложный запрос на обновление / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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