powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите с построением сложного запроса.
9 сообщений из 9, страница 1 из 1
Помогите с построением сложного запроса.
    #32874769
glucke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не может ли кто-нибудь помочь с запросом?
У меня есть 2 таблицы:
Одна со списком названий акций. Во второй лежат цены этих акций на разные даты.

Надо: Чтобы из запроса выдовалось для каждой акции - последняя цена, дата последней цены, цена приблизительно за квартал до последней цены и дата.

Основная проблема: на дату ровно квартал назад, может не быть котировки, и надо выбрать ближайшую котировку. Очень желательно как-то реализовать это через SQL, а не VBA. Так как размер второй таблицы крайне велик(десятки тысяч записей), а насколько я знаю VBA работает медленее чем SQL.

Буду крайне благодарен за любую помощь
...
Рейтинг: 0 / 0
Помогите с построением сложного запроса.
    #32875034
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ответ на часть вопроса есть тут:
http://sql.ru/forum/actualthread.aspx?tid=135145
...
Рейтинг: 0 / 0
Помогите с построением сложного запроса.
    #32875958
glucke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ссылку.
1)Это по поводу первой трети вопроса:Как напротив последней даты выводить цену ей соответствующую.
Сам я эту часть мене красиво делал, через 2 запроса, хотя по смыслу тоже направление.
2)Вторая треть: Это как вывести в одной строке максимальную дату с ценой ей соответствующей и дату на квартал меньше с ценой?(чтоб именно в одной строке, а НЕ две соседние строки(в одной на одну дату, в другой на вторую).
3)Третья, и самая сложная часть:Как при отсутствии даты(нет котировки на эту дату) ровно на квартал меньшей, найти ближайшую дату с котировкой?

Буду крайне благодарен за помощь с оставшимися 2/3 вопроса
...
Рейтинг: 0 / 0
Помогите с построением сложного запроса.
    #32876462
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В TSQL пригодится функция:
Код: plaintext
1.
2.
3.
DATEDIFF
Returns the number of date and time boundaries crossed between two specified dates. 
Syntax
DATEDIFF (datepart , startdate , enddate)
2) Слить с помощью UNION во временную таблицу, а потом сделать запрос из этой таблицы сгруппировав по коду акции и выбрать максимальное значение
3) В глову приходит такое:
MIN(ABS(1-DATEDIFF (qq , Дата , MAX(Дата))))

PS А лучше эти вопросы задать на форуме по MS SQL:
http://sql.ru/forum/actualtopics.aspx?bid=1
...
Рейтинг: 0 / 0
Помогите с построением сложного запроса.
    #32876833
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/topic/88919&pg=2#647540
...
Рейтинг: 0 / 0
Помогите с построением сложного запроса.
    #32877473
glucke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромнейшее спасибо за идею с тертьей частью вопроса, сделал. Теперь осталось решить 2 треть вопроса(сделать красивое оформление).

У меня осталась таблица с датами с шагом приблизительно в квартал(чтоб котировки были):

Акция Д1 Д2 Д3

А1 Д11 Д12 Д13
А2 Д21 Д22 Д23
А3 Д31 Д32 Д33

, где в столбце Д1 - последняя дата для каждой акции, в Д2 - дана на квартал меньшая, на которую есть котировка, в Д3 - на 2 квартала.

Хочется сделать запрос показывающий следующее:
Акция Д1 Д2 Д3

А1 Ц11 Ц12 Ц13
А2 Ц21 Ц22 Ц23
А3 Ц31 Ц32 Ц33

, где Цij - цена на дату Дij акции i

Мне удается добиться слишком некрасивого варианта:
Акция Д11 Д12 Д13 Д21 Д22 Д23 Д31 Д32 Д33

А1 Ц11 Ц12 Ц13 Null Null Null Null Null Null
А2 Null Null Null Ц21 Ц22 Ц23 Null Null Null
А3 Null Null Null Null Null Null Ц31 Ц32 Ц33

Если кто может посоветовать как добиться таблицы предпоследнего вида - пожалуйста подскажите.

P.S. О более подходящем разделе для вопросов этого типа понял. При следующем вопросе - сменю рубрику.
...
Рейтинг: 0 / 0
Помогите с построением сложного запроса.
    #32877785
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gluckeХочется сделать запрос показывающий следующее:
Акция Д1 Д2 Д3

А1 Ц11 Ц12 Ц13
А2 Ц21 Ц22 Ц23
А3 Ц31 Ц32 Ц33ИМНО, не есть правильно, т.к. Д1, Д2, Д3 у разных акций разные, т.е. нужно примерно так:
Код: plaintext
1.
2.
A1     Д11 Ц11     Д12 Ц12      Д13 Ц13
A1     Д11 Ц11     Д12 Ц12      Д13 Ц13
A1     Д11 Ц11     Д12 Ц12      Д13 Ц13
...
Рейтинг: 0 / 0
Помогите с построением сложного запроса.
    #32879056
glucke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Безусловно можно и так. Наверное для внешнего пользователя последний вариант будет лучше. Но вопрос как сделать хотябы один из двух вариантов.
...
Рейтинг: 0 / 0
Помогите с построением сложного запроса.
    #32880319
glucke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ура, я сделал это!
Он стал показывать все, в форме рекомендованной by Bagin (Через 3 запроса реализовал это, правда чуть подтормаживает но это уже детали).
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите с построением сложного запроса.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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