Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 ранжирование с повторениями  [new]
Двоичник
Member

Откуда: Бобруйск
Сообщений: 356
помогите пожалуйста с ранжированием
имею две таблицы
1 а
2 б
3 с

и таблицу
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z

в результате нужно получить

1 а a
2 б b
3 с c
1 а d
2 б e
3 с f
1 а g
2 б h
3 с i
1 а j
2 б k
3 с l
1 а m
2 б n
3 с o
1 а p
2 б q
3 с r
1 а s
2 б t
3 с u
1 а v
2 б w
3 с x
1 а y
2 б z

спасибо
12 авг 14, 16:24    [16432232]     Ответить | Цитировать Сообщить модератору
 Re: ранжирование с повторениями  [new]
Glory
Member

Откуда:
Сообщений: 104751
Это соединение по остатку от деления порядкового номера на 3

Сообщение было отредактировано: 12 авг 14, 16:30
12 авг 14, 16:30    [16432284]     Ответить | Цитировать Сообщить модератору
 Re: ранжирование с повторениями  [new]
Двоичник
Member

Откуда: Бобруйск
Сообщений: 356
пожалуйста, можно ли в форме скрипта? я не очень понимаю что это значит "соединение по остатку от деления порядкового номера"
спс
12 авг 14, 16:31    [16432297]     Ответить | Цитировать Сообщить модератору
 Re: ранжирование с повторениями  [new]
Glory
Member

Откуда:
Сообщений: 104751
Двоичник
пожалуйста, можно ли в форме скрипта? я не очень понимаю что это значит "соединение по остатку от деления порядкового номера"

Математику надо было учить

Нумеруете 2ю таблицу
Номер каждой записи делите на 3.
Берете остаток.
По этому значению делаете join с 1ой таблицей
12 авг 14, 16:34    [16432327]     Ответить | Цитировать Сообщить модератору
 Re: ранжирование с повторениями  [new]
Glory
Member

Откуда:
Сообщений: 104751
Извиняюсь, на 4
12 авг 14, 16:36    [16432341]     Ответить | Цитировать Сообщить модератору
 Re: ранжирование с повторениями  [new]
iap
Member

Откуда: Москва
Сообщений: 47197
WITH
 T1 AS(SELECT * FROM(VALUES(1,'а'),(2,'б'),(3,'с'))Е(f1,f2))
,T2 AS(SELECT * FROM(VALUES('a'),('b'),('c'),('d'),('e'),('f'),('g'),('h'),('i'),('j'),('k'),('l'),('m'),('n'),('o'),('p'),('q'),('r'),('s'),('t'),('u'),('v'),('w'),('x'),('y'),('z'))T(f))
SELECT T1.*,T.f
FROM T1
JOIN(SELECT N=ROW_NUMBER()OVER(ORDER BY f),* FROM T2)T ON T1.f1=(T.N-1)%3+1;
12 авг 14, 16:37    [16432351]     Ответить | Цитировать Сообщить модератору
 Re: ранжирование с повторениями  [new]
Двоичник
Member

Откуда: Бобруйск
Сообщений: 356
спасибо. то что надо!
12 авг 14, 16:39    [16432386]     Ответить | Цитировать Сообщить модератору
 Re: ранжирование с повторениями  [new]
Glory
Member

Откуда:
Сообщений: 104751
Двоичник
спасибо. то что надо!

А вы хоть поняли, что такое остаток от деления ?
12 авг 14, 16:41    [16432410]     Ответить | Цитировать Сообщить модератору
 Re: ранжирование с повторениями  [new]
Двоичник
Member

Откуда: Бобруйск
Сообщений: 356
7 - 7/3 * 3 = 7 % 3
совсем за дурака держите?
12 авг 14, 16:54    [16432539]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить