Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 05.07.2017
Сообщений: 2

Выборка финальных значений в промежутке и нахождение несуществующих значений

05.07.2017, 20:04. Показов 1408. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
всем привет!
прошу помощи начинающему, есть 3 таблицы: две из них - с данными о товарах (на уровне магазина и области), третья - связывает первые две посредством кодов (магазина и области)

таблица на уровне области (zone):
itemzone_idac_dateprice
intintdatemoney

таблица на уровне магазина (loc):
itemloc_idac_dateprice
intintdatemoney

таблица, которая связывает выше перечисленные по кодам обл/магазина (один магазин может находится только в одной области, но в одной области может находится несколько магазинов) (zone_loc)
zone_idloc_id
intint

Имеются 2 вопроса.
Первый: нужно написать запрос, показывающий цену для товаров, находящейся в первой (zone = 1) области на начало и конец периода (1.06.2015 по 20.07.2016)
вот что есть на данный момент
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT item, ac_date, price
FROM zone
WHERE ac_date <= '2015.6.1' AND zone_id = 1
UNION 
SELECT item, ac_date, price
FROM loc a
JOIN zone_loc b
ON a.loc_id = b.loc_id
WHERE a.ac_date <= '2015.6.1' AND b.zone_id = 1
UNION 
SELECT item, ac_date, price
FROM zone  
WHERE ac_date = '2016.7.20' AND zone_id = 1 
UNION 
SELECT item, ac_date, price
FROM loc a
JOIN zone_loc b
ON a.loc = b.loc
WHERE a.ac_date = '2016.7.20' AND b.zone_id = 1;
проблема заключается в том, что не все товары изменили цены прямо в последний день периода (2016.7.20), поэтому при изменении варианта с
SQL
1
WHERE ac_date = '2016.7.20'
на
SQL
1
WHERE ac_date BETWEEN '2015.6.2' AND'2016.7.20'
в выборку попадают промежуточные значения, которые к концу периода изменили свою цену.
Как нужно изменить запрос, чтобы в выборке на конец периода отображались только товары с конечными ценами?
И как можно изменить запрос, не используя union?



Есть еще один вопрос, нужно создать такой запрос, который бы показывал цену товара на уровне магазина (табл. loc), которой нет на уровне области, к которой привязан магазин. Здесь, как я понял, должно быть соответствие по датам (помимо всего прочего - id товара, zone to loc). По этому заданию у меня вообще никаких годных наработок нет, есть мысль, что это все должно с таблицей товаров магазина (loc) через таблицу связи (zone_loc) с таблицей товаров области (zone), а дальше через оператор EXISTS находить те записи, которых нет в таблице zone
SQL
1
2
3
4
5
6
7
SELECT a.item, a.loc_id, c.zone_id, a.ac_date, a.price
FROM loc a JOIN zone_loc b 
ON a.loc_id = b.loc_id
JOIN zone c
ON b.zone_id = c.zone_id
WHERE a.item = c.item 
AND a.ac_date = c.ac_date;
Но это совсем не то, и как дальше использовать EXISTS (если вообще правильно его тут использовать) и прийти к верному решению не знаю.
Буду благодарен любой помощи в этих вопросах!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.07.2017, 20:04
Ответы с готовыми решениями:

Выборка значений в промежутке дат ADOQuery, TimeDataPicker, Delphi
Не получается выборка по заданному диапазону дат. Необходимо выводить записи с датами между TimeDataPicker1 и TimeDataPicker2, но почему-то...

Построить таблицу значений функции f(x)=x^3+x^2-16x-18 для значений x, изменяющихся на промежутке
Дана функция f(x)=x^3 〖+x〗^2-16x-18 Построить таблицу значений функции y=f(x) для значений x, изменяющихся на промежутке с шагом ∆x=0.5

Сравнение значений между собой в порядке даты и выборка отрицательных значений разницы
Уважаемые, Помогите решить следующую нетривиальную задачу есть таблица следующего вида (название столбцов) артикуль ...

1
5962 / 4538 / 1094
Регистрация: 29.08.2013
Сообщений: 28,148
Записей в блоге: 3
06.07.2017, 17:52
не совсем понял задание
есть область и есть магазины, но товары то только в магазине бвают, тогда зачем в таблице с областями еще инфа о товаре и цене?

еще непонятки
вот ты пишешь
Цитата Сообщение от nival Посмотреть сообщение
находящейся в первой (zone = 1) области на начало и конец периода
и сразу же
Цитата Сообщение от nival Посмотреть сообщение
(1.06.2015 по 20.07.2016)
на начало и на конец - это 2 даты, а ПО - это период
уточни - что же тебе все таки нужно

далее по запросам
1. если у тебя есть период - что тебе мешаешь получить данные просто по дате?

2.
Цитата Сообщение от nival Посмотреть сообщение
цену товара на уровне магазина (табл. loc), которой нет на уровне области
но область не может продавать товары!!!
товары продает только магазин в области

но в любом случаее у тебя есть один список с товарами магазина и второй с товарами области - тут конечно можно использовать или IN или EXISTS
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.07.2017, 17:52
Помогаю со студенческими работами здесь

Дана выборка из 10 значений. Расширить ее до 100 значений.
Дана выборка из 10 чисел, расширить её до 100. Посоветовали функцию BOOTSTRP. Но смог найти только более менее сносный параметр...

Сумма значений функции на заданном промежутке
Написать программу расчета суммы значений функции на заданном промежутке с шагом 0.2 y=x^3-4x^2+2

Умножение значений в промежутке времени excel
Доброго времени суток. Очередной стопор в таблицах. Суть в примере. Спасибо

Как доработать Сумму значений в промежутке
Здравствуйте! Помогите доработать данный код, который высчитывает сумму для всех столбцов. найти №q№r лист данные в листе...

Распечатать таблицу значений y(x) = 6•x – 4 на промежутке [0; 9] c шагом 0,5
2. Распечатать таблицу значений y(x) = 6•x – 4 на промежутке c шагом 0,5. (30 баллов)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru