Гость
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / select ... over (partition by ... / 3 сообщений из 3, страница 1 из 1
24.10.2013, 09:20
    #38439276
еще вопрос
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select ... over (partition by ...
Помогите переписать, в ms sql server работает, а нужно в IQ 15

проблема в строке case when dated = max(dated) over(partition by id) then summa end as summa,
Invalid expression near 'max'
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
-- Тестовые данные:
with 
  t(id, dated, summa) as 
    (
      select * 
        from (
               values 
                      (1, 20120512, 536),
                      (1, 20120426, 450),
                      (1, 20120412, 350),
                      (1, 20120401, 0),
                      (1, 20120321, 100),
                      (1, 20120301, 0),
                      (1, 20120201, 50),
                      (1, 20120101, 0),
                      (1, 20110301, 5),
                      (2, 20130710, 14500),
                      (2, 20130528, 0),
                      (2, 20130402, 200),
                      (3, 20121102, 700),
                      (4, 20120823, 450),
                      (4, 20120705, 210),
                      (4, 20120411, 110),
                      (5, 20130217, 0),
                      (5, 20130109, 2000)
             )v(a,b,c)
    )
--
-- Основной запрос:
select id, min(dated) as dated, max(summa) as summa
  from (
         select t.id, t.dated,
                case when dated = max(dated) over(partition by id) then summa end as summa,
                sum(case when summa = 0 then 1 else 0 end) 
                  over(partition by id 
                           order by dated desc) as grp_id
           from t
       )v
 where grp_id = 0
 group by id;
...
Рейтинг: 0 / 0
24.10.2013, 09:38
    #38439297
еще вопрос
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select ... over (partition by ...
и еще over(partition by id order by dated desc)
order by key must be a numeric data in range window frame
подскажите как обойти
...
Рейтинг: 0 / 0
24.10.2013, 10:56
    #38439428
еще вопрос
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select ... over (partition by ...
пофиксил сам.
2. написал так over ... preceding and currenr row
1. max(dated) over(partition by id) вынес в отдельное поле
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / select ... over (partition by ... / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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