green_fr (green_fr) wrote,
green_fr
green_fr

Category:

Помогите с SQL


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

Я написал следующего монстра (POSITION - таблица курсов, код не в одной колонке POS_COD, а в двух POS_PTF_COD и POS_VAL_COD, INTEGRATION - список всех дат базы данных):

select pos_darr, min(int_darr), pos_ptf_cod, pos_val_cod, pos_cours
from (
select pos1.pos_darr, int_darr, pos1.pos_ptf_cod, pos1.pos_val_cod, pos1.pos_cours
from position pos1, position pos2, integration
where pos1.pos_darr = '20/07/2006'
and pos1.pos_val_cod = 'FR0000108664'
and pos1.pos_ptf_cod = '1000101'
and pos1.pos_ptf_cod = pos2.pos_ptf_cod
and pos1.pos_val_cod = pos2.pos_val_cod
and int_darr < pos1.pos_darr
and pos1.pos_darr > pos2.pos_darr
and int_darr <= pos2.pos_darr
group by pos1.pos_darr, pos1.pos_ptf_cod, pos1.pos_val_cod, pos1.pos_cours, int_darr
having min(pos2.pos_cours) = max(pos2.pos_cours)
)
group by pos_darr, pos_ptf_cod, pos_val_cod, pos_cours

Монстра работает, конечно, но только когда я запрашиваю один код (как это сдалено в примере). Когда прошу много - думает тормозит. Неудивительно, впрочем. Есть какие-то идеи, как вообще такие вещи пишутся?

Можно, конечно, писать не запрос, а цикл, который пробегает по курсору... Но хочется красиво как-то.
Tags: rabota
Subscribe

  • П.В. Маковецкий «Смотри в корень!»

    На днях наткнулся взглядом на старую книжку «Смотри в корень!» Маковецкого, взял с полки — и чуть ли не на едином дыхании снова её прочитал.…

  • 2020 год дома

    Вторая часть фотографий 2020 года: что было у нас дома. Купили игрушку на Новый год, Turing Tumble — интересный концепт, когда ты строишь очень…

  • Музеи 2019—2020

    Очень не хватает музеев, во Франции они до сих пор всё ещё закрыты. В какой-то момент задумался: насколько объективно снижение количества моих…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 31 comments

  • П.В. Маковецкий «Смотри в корень!»

    На днях наткнулся взглядом на старую книжку «Смотри в корень!» Маковецкого, взял с полки — и чуть ли не на едином дыхании снова её прочитал.…

  • 2020 год дома

    Вторая часть фотографий 2020 года: что было у нас дома. Купили игрушку на Новый год, Turing Tumble — интересный концепт, когда ты строишь очень…

  • Музеи 2019—2020

    Очень не хватает музеев, во Франции они до сих пор всё ещё закрыты. В какой-то момент задумался: насколько объективно снижение количества моих…