Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.07.2009, 22:10   #11
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от NurNet Посмотреть сообщение
попробуй лучше так:
select * from cardrest group by(rest)
думаю, что разработчики стандарта анси-скл спецом для вас выпустят в след.релизе интеллектуальную группировку типа
Код:
select *
from my_table
group by КАК_МНЕ_НАДО
soleil@mmc вне форума Ответить с цитированием
Старый 03.08.2009, 11:16   #12
Black_Guardian
 
Регистрация: 30.07.2009
Сообщений: 7
По умолчанию

NurNet простая группировка мне не подходит. (см. ТЗ)

soleil@mmc спасибо щас буду пробывать
Black_Guardian вне форума Ответить с цитированием
Старый 03.08.2009, 11:36   #13
Black_Guardian
 
Регистрация: 30.07.2009
Сообщений: 7
По умолчанию

к сожалению нет в MS SQLе функции lead
а что она делает, может я аналог найду?

Последний раз редактировалось Black_Guardian; 03.08.2009 в 11:42.
Black_Guardian вне форума Ответить с цитированием
Старый 03.08.2009, 12:34   #14
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от Black_Guardian Посмотреть сообщение
к сожалению нет в MS SQLе функции lead
а что она делает, может я аналог найду?
lead() показывает в текущей строке значение следующей строки
если нет этой функи, то можно попробовать с помощью row_number() подтянуть данные через вспомогательный запрос:
Код:
with t
as
(select 123 CardNumber, to_date('20.07.2009', 'DD.MM.YYYY') DateRest, 0 Rest from dual union all
 select 123, to_date('21.07.2009', 'DD.MM.YYYY'), 0 from dual union all
 select 123, to_date('22.07.2009', 'DD.MM.YYYY'), 700 from dual union all
 select 123, to_date('23.07.2009', 'DD.MM.YYYY'), 700 from dual union all 
 select 123, to_date('23.08.2009', 'DD.MM.YYYY'), 700 from dual union all
 select 123, to_date('23.08.2009', 'DD.MM.YYYY'), 700 from dual union all
 select 123, to_date('23.08.2009', 'DD.MM.YYYY'), 700 from dual union all
 select 123, to_date('23.09.2009', 'DD.MM.YYYY'), 300 from dual union all
 select 123, to_date('24.07.2009', 'DD.MM.YYYY'), 0 from dual union all
 select 123, to_date('25.07.2009', 'DD.MM.YYYY'), 0 from dual union all
 select 123, to_date('26.07.2009', 'DD.MM.YYYY'), 500 from dual union all
 select 123, to_date('27.07.2009', 'DD.MM.YYYY'), 10000 from dual union all
 select 123, to_date('28.07.2009', 'DD.MM.YYYY'), 10000 from dual),

t1 as
(select   
  CardNumber,
  DateRest,  
  Rest,
  row_number() over(order by CardNumber, DateRest) rn
 from t 
),
 
t2 as
(select   
  p.CardNumber,
  p.DateRest,
  nvl(p2.DateRest, p.DateRest) date_lead,
  p.Rest,
  nvl(p2.Rest, p.Rest) rest_lead
 from 
  t1 p,
  t1 p2
 where 0=0
   and p.rn = p2.rn+1
 ) 

select 
  CardNumber,
  min(DateA) DateA,
  DateB,
  max(Rest) Rest
from(
select
  CardNumber,
  daterest DateA,
  case 
  when rest<>rest_lead then daterest
  else nvl(date_lead, daterest)
  end DateB,
  Rest
from t2)
group by cardNumber, DateB
order by cardNumber, DateA
soleil@mmc вне форума Ответить с цитированием
Старый 03.08.2009, 15:02   #15
Black_Guardian
 
Регистрация: 30.07.2009
Сообщений: 7
По умолчанию

soleil@mmc запросы такой структуры в MS SQL не прокатывают да и функции nvl тоже нету...

Наверно, придется решить задачку другим способом: я данные загружаю из текстового файла и буду в момент загрузки смотреть дату предидущего остатка и если остатки равны менять эту дату, в случае если различны то писать новую запись.

Всем спасибо за переживание.
Если будут идеи пишите.
Доброго кода вам!!!
Black_Guardian вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
остатки от деления на паскале semennn Помощь студентам 1 01.04.2009 05:32
Запрос White БД в Delphi 0 18.09.2008 09:30
запрос ссылается на несвязанный с ним запрос kolebatel SQL, базы данных 0 11.06.2008 12:50
Запрос Инночка БД в Delphi 1 01.05.2008 23:46