Hello Vadim,

Wednesday, October 17, 2007, 10:59:14 AM, you wrote:

VM> Здраствуйте.

VM> Такая проблемка

VM> Есть таблица с такими данными:

VM> Дата (DateTime)
VM> Показатель (Integer)
VM> Значение показателя (Float)

VM> В этой таблице не для всех дат календаря есть записи

VM> Нужно получить в SQL запросе все даты запрашиваемого периода если (в 
таблице 
VM> отсутствует значение, то вывести 0).
VM> Мысли крутятся вокруг процедуры, но что то красивого решения не получается.

Я бы сделал таблицу в БД
create table all_dates{
year int,
date_in_year date
}
залилбы туда текущий год
 + 20 лет
 - 20 лет
 а потом
 select
  a.Date
  NVL(b.Показатель,"Жопа")
  NVL(b.Значение показателя,0)
 from
   all_dates a
   left outer join твоя таблицы b on (даты равны)
where
   date_in_year в диапазоне

:)))))))))))))))))
память экономит не будем :)

а помнитьцо вложенные запросы уже были реализованы
тогда можно попробовать сформировать во вложенном запросе список дат в
промежутке и опять слева сджоинить с твоими данными.
Как формировать еще не придумал :(

вобщем понятна куды копать?

  Тема Дня: За милых, yмных, добpых - за нас, мyжики!
  До не скорой встречи в аду,
 Max                            mailto:[EMAIL PROTECTED]


Ответить