LEADERSOFT.ru
Разработка на заказ программ и сайтов
Разработка
Заказ программы
Прайс-лист
Техническое задание
Проектная документация
Наши клиенты
Реклама и продвижение
Магазин
Перейти в магазин
Новинки магазина
Бизнес программы
Финансовый учет
Документооборот
Исходные коды
Интернет решения
Обучение
Перейти в раздел
Форумы по разработке
Примеры на Access
Рассылка статей
Магазин IT литературы
Блог
Все статьи
Microsoft Access (VBA)
Microsoft Access (Проекты)
Microsoft ASP.NET
Сервисы Google
Технические задания
Новости IT технологий
Сервисы
Форумы разработчика
Контакты
О компании
Регистрация на сайте
Подписка на новости по Email
Сообщество Google+
Подписка subscribe.ru
Новости в формате Атом
Загрузить
Загрузить каталог программ
Форумы по информационным технологиям
Начало
Forums
Регистрация
|
Вход
Forums
Обновлено ::
11 декабря 2023
Форумы
Поиск
Список форумов
Программирование
Microsoft Access. Файлы mdb и accdb
Выборка в запро...
Выборка в запрос нужной цены
16.06.2016 9:06:34
Aleck_b
11 сообщения
Выборка в запрос нужной цены
Здравствуйте.
Вопрос такой: Есть таблица "Изделия" с полями [Код_изделия], [Наименование_изделия], [Шифр] и есть связанная с ней по полю [Код_изделия] таблица "Цены изделий" с полями [Код_изделия], [Дата], [Цена], в которой находятся цены на определенную дату изделий. Нужно получить запрос, в котором будут поля:
[Наименование_изделия], [Шифр], [Дата], [Цена]
причем [Цена] должна выбираться на указанную заранее дату или более раннюю дату, а если на такую дату цены нет, то выдавать цену 0 или ''.
Например: Таблица "Изделия" содержит записи:
1 Коронка 18547
2 Макет 78979
3 Протез 46565
А таблица "Цены изделий" содержит записи:
1 15.01.2014 1000
1 10.07.2015 2000
1 14.03.2016 3000
2 19.09.2015 1500
2 23.11.2016 4000
3 17.03.2014 8500
3 21.02.2015 9100
3 04.04.2016 9800
Если мы задаем дату выборки например 16.06.2016, то запрос должен выдать такой результат:
Коронка 18547 14.03.2016 3000
Макет 78979 19.09.2015 1500
Протез 46565 04.04.2016 9800
Если мы задаем дату выборки например 20.03.2014, то запрос должен выдать такой результат:
Коронка 18547 15.01.2014 1000
Макет 78979 0 (или '')
Протез 46565 17.03.2014 8500
Если мы задаем дату выборки например 10.01.2012, то запрос должен выдать такой результат:
Коронка 18547 0 (или '')
Макет 78979 0 (или '')
Протез 46565 0 (или '')
16.06.2016 19:46:48
Admin1
731 сообщения
Re: Выборка в запрос нужной цены
Есть несколько вариантов решения задачи. Вот алгоритмы.
1. Использовать вторичный запрос. (SELECT TOP 1 * [Цены изделий] Where [Дата] BETWEEN D1 And D2 AND [Код_изделия] = [Изделия].[Код_Изделия]) Этот запрос надо добавить вместо таблицы SELECT * (...) FROM [Изделия]. Для того, чтобы не было пустых строк, в таблицу [Цены изделий] записать цены с периодом 01.01.2000 г. или использовать еще запрос для нулевых цен и UNION для объединения с главный запросом.
2. Использовать функцию DLookup. Она позволяет выбрать одну запись из таблицы, используя фильтр. Если запись возвращает NULL, то надо иcиспользовать NZ для того, чтобы определить 0 или ''
P.S. Лучше использовать мастер для построения запросов. Скорость запроса с DLookup будет медленнее.
Страница 1 из 1
Программирование
Microsoft Access. Файлы mdb и accdb
Выборка в запро...
Одноуровневый вид
Древовидная структура
Самый старый из новых
Новейший из старых
Поиск
Список форумов
Начало
|
Forums
Copyright 2002-2016 Leadersoft.ru
::
Leadersoft
::
Соглашение о безопасности
::
Условия использования