powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / select ... over (partition by ...
3 сообщений из 3, страница 1 из 1
select ... over (partition by ...
    #38439276
еще вопрос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите переписать, в 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
select ... over (partition by ...
    #38439297
еще вопрос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и еще over(partition by id order by dated desc)
order by key must be a numeric data in range window frame
подскажите как обойти
...
Рейтинг: 0 / 0
select ... over (partition by ...
    #38439428
еще вопрос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пофиксил сам.
2. написал так over ... preceding and currenr row
1. max(dated) over(partition by id) вынес в отдельное поле
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / select ... over (partition by ...
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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