Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / row_number() недоступен. Возможно ли заменить? / 5 сообщений из 5, страница 1 из 1
16.03.2018, 16:37
    #39616055
waszkiewicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
row_number() недоступен. Возможно ли заменить?
вот такой код. Что мечтается - имеем прайслист, где указаны цены на товары (SKU) по датам.
необходимо исключить все последовательно (по датам) одинаковые по ценам позиции
Это работает. Но нужно без row_number() решить, ибо 1С
Возможно ли?

Код: 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.
41.
42.
43.
44.
45.
;with cte (sku,[date],price) as (
select 1,'20180101',2
union all
select 1,'20180102',2
union all 
select 1,'20180103',2
union all 
select 1,'20180104',3
union all
select 1,'20180105',3
union all
select 1,'20180106',2
union all
---
select 2,'20180101',2
union all
select 2,'20180102',2
union all 
select 2,'20180103',2
union all 
select 2,'20180104',3
union all
select 2,'20180105',3
union all
select 2,'20180106',2
union all
select 2,'20170104',2 -- especial

)
, tot (rn,date,price,sku) as
(select ROW_NUMBER() over(order by sku,date) rn -- root of evil :)
		,date
		,price
		,sku
from cte)
select t1.sku
		,t1.date	
		,t1.price
		
from tot t1 
left join tot t2 
on t2.rn=t1.rn-1 
	and t1.price=t2.price 
	and t1.sku=t2.sku
where t2.rn is null


...
Рейтинг: 0 / 0
16.03.2018, 16:42
    #39616057
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
row_number() недоступен. Возможно ли заменить?
FAQ форума
...
Рейтинг: 0 / 0
16.03.2018, 16:49
    #39616066
waszkiewicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
row_number() недоступен. Возможно ли заменить?
Maxx,
возможно, неверно объяснил (или не понял, в где годный FAQ по этому вопросу)
вот такой результат дает скрипт. но с row_number()
sku date price
1 20180101 2
1 20180104 3
1 20180106 2
2 20170104 2
2 20180104 3
2 20180106 2

а мечтается без
...
Рейтинг: 0 / 0
16.03.2018, 16:53
    #39616069
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
row_number() недоступен. Возможно ли заменить?
...
Рейтинг: 0 / 0
19.03.2018, 04:17
    #39616597
Kopelly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
row_number() недоступен. Возможно ли заменить?
waszkiewicz,

Для того чтобы определить предыдущее значение прайс-листа и сравнить его с текущим не обязательно нумеровать строки. Можно и вложенным запросом.

Код: sql
1.
2.
3.
select t1.*
from cte t1 
where isnull((Select top 1 t2.price From cte t2 WHere t1.sku = t2.sku and t1.date>t2.date Order by t2.date desc),-1) <> t1.price
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / row_number() недоступен. Возможно ли заменить? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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