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

Recent Posts from This Journal

  • Louvre: итальянская живопись

    Ещё немного фоточек из Лувра. Это мы с Анютой после выставки «итальянской души» гуляли по итальянским залам. Анонимный флорентиец XV века.…

  • Ещё об эффективности вакцины

    Мои выкладки по поводу эффективности вакцины были сделаны реально «на коленке» — они давали общее представление об эффективности, не учитывая…

  • Cité de l'Économie

    Лариса как-то напомнила мне об открывшемся в Париже Музее Экономики, и мы с Анютой сходили туда. Наверное,…

  • 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

Recent Posts from This Journal

  • Louvre: итальянская живопись

    Ещё немного фоточек из Лувра. Это мы с Анютой после выставки «итальянской души» гуляли по итальянским залам. Анонимный флорентиец XV века.…

  • Ещё об эффективности вакцины

    Мои выкладки по поводу эффективности вакцины были сделаны реально «на коленке» — они давали общее представление об эффективности, не учитывая…

  • Cité de l'Économie

    Лариса как-то напомнила мне об открывшемся в Париже Музее Экономики, и мы с Анютой сходили туда. Наверное,…