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

Составить сложный запрос

07.09.2012, 12:18. Показов 2794. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Срочно нужно составить сложный запрос

В таблице RPM_ZONE_FUTURE_RETAIL хранятся изменения цен на уровне товар/ценовая зона (ITEM/ZONE). В таблице RPM_FUTURE_RETAIL хранятся изменения цен на уровне товар/магазин (ITEM/LOCATION).
Исходим из того, что мы имеем исторические изменения до 3 месяцев в прошлом и все будущие изменения. Текущая дата в системе 01/07/2011.

В нашей конфигурации, все магазины одной ценовой зоны должны иметь одинаковые цены на товар.

1. Написать SQL запрос который покажет текущую цену для товара 03020318 в каждой ценовой зоне (на 01/07/2011).


2. Написать SQL запрос который покажет неверные цены по магазинам (отличающиеся от цены определенной на уровне ценовой зоны)

Таблицы:

Таблица rpm_zone_future_retail
ITEMZONEACTION_DATESELLING_RETAIL
 
03020318 1 29.05.2011 39,99
03020318 4 29.05.2011 46,99
03020318 5 29.05.2011 46,99
03020318 1 15.06.2011 46,99
03020318 1 20.07.2012 55
03020318 4 20.07.2012 50
03020318 5 20.07.2012 50
04070777 1 29.05.2011 29,99
04070777 1 15.06.2011 46,99
04070777 5 15.06.2011 9,99
04070777 4 29.05.2011 29,99
04070777 5 29.05.2011 29,99


Таблица rpm_future_retail
 
ITEM LOCATION ACTION_DATE SELLING_RETAIL
 
04070777 1 29.05.2011 29,99
04070777 1 20.07.2012 50
04070777 4 29.05.2011 29,99
04070777 4 15.06.2011 46,99
04070777 5 29.05.2011 29,99
04070777 6 29.05.2011 29,99
04070777 7 29.05.2011 29,99
04070777 8 29.05.2011 29,99
04070777 11 29.05.2011 29,99
04070777 101 29.05.2011 29,99
04070777 103 29.05.2011 29,99
04070777 105 29.05.2011 29,99
04070777 106 29.05.2011 29,99
03020318 6 29.05.2011 46,99
03020318 7 29.05.2011 46,99
03020318 101 29.05.2011 46,99
03020318 103 29.05.2011 46,99
03020318 6 20.07.2012 50
03020318 7 20.07.2012 50
03020318 101 20.07.2012 50
03020318 103 20.07.2012 47
04070777 103 15.06.2011 9,99
04070777 1 15.06.2011 9,99
04070777 8 15.06.2011 9,99
03020318 4 29.05.2011 39,99
03020318 4 15.06.2011 46,99
03020318 4 20.07.2012 55

Таблица rpm_zone_location

ZONE_IDLOCATION
 
4 101
5 103
4 105
4 106
5 1
1 4
4 5
4 6
4 7
5 8
4 11

Таблица RPM_ZONE
ZONE_IDNAME
 
4 Zone 4
5 Zone 5
1 Base zone
2 Zone 2


Уже есть некоторые наработки:

1. Написать SQL запрос который покажет текущую цену для товара 03020318 в каждой ценовой зоне (на 01/07/2011).

select *
from rpm_zone_future_retail
where item in ('03020318') and ACTION_DATE<='01/07/2011'
order by ACTION_DATE desc


2. Написать SQL запрос который покажет неверные цены по магазинам (отличающиеся от цены определенной на уровне ценовой зоны)

select (что надо)
from rpm_zone_location
join rpm_zone_future_retail on rpm_zone_future_retail.zone= rpm_zone_location.ZONE_ID
join rpm_future_retail on rpm_future_retail.location= rpm_zone_location.LOCATION
and (условие связи rzfr и rfr)
where (тут что-то с чем-то должно не совпадать)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.09.2012, 12:18
Ответы с готовыми решениями:

нужно составить сложный запрос
доброе время суток. суть такова, структура базы приблизительно такая: Cid|Money 1 | 105 2 | -300 3 | 250 4 | 400 5 | 220...

Сложный запрос к БД
Есть БД, в ней таблица main с полями ip(адрес абонента),datetime(время запроса),size(размер ответа в байтах). Внимание!!!! Необходимо...

сложный запрос
Есть таблица А: id | date | number, id - int date - datetime number - int, 0, 1 или 2 Необходим запрос в табл А, где...

1
217 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 614
11.09.2012, 09:40
если я правильно понял, то нужно выбрать итэм - зона - цена.
если в зоне есть несколько цен, то брать ту, в которой дата позже, но меньше текущей
тогда как-то так:
1.
T-SQL
1
2
3
4
5
6
SELECT z.Item, z.Zone
   , max(z.Action_Date) as Action_Date
   , first(z.Selling_Retail) as Selling_Retail
FROM rpm_zone_future_retail z
WHERE item in ('03020318') and z.Action_Date<='01/07/2011'
GROUP BY z.Item, z.Zone, max(z.Action_Date)
работает или нет, не уверен, надо пробовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.09.2012, 09:40
Помогаю со студенческими работами здесь

Сложный запрос
Всем доброго времени суток. Всех милых дам с 8 марта!:rose: И так у меня БД: Реляционная модель: Нужно получить...

Сложный запрос
Здравствуйте!у меня есть БД: Успеваемость(#Nз, #ИдКурса, #Семестр, #УчНед, #ВидОтчета, Оценка) ОтчетГруппы(#ИдКурса, #Nгр, #УчНед,...

Сложный запрос
Всем привет! (пример) Есть 3 таблицы:Users, Auto, Motorcycles. (Они связаны через ключевое поле userID.) Мне нужно вывести...

Сложный запрос
Сгруппировать по keyGroup. Если в группе больше одной записи Если в группе есть хоть одна запись у которой isFirst = 1, получить...

Сложный запрос
Доброго времени суток! Знатоки SQL подскажите пожалуйста как привести в рабочий вид мой запрос: DECLARE @data AS XML, ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru