Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.13;
Скачать: CL | DM;

Вниз

Рейтинг чисел в строке таблицы в msSQL...   Найти похожие ветки 

 
Vick ©   (2003-02-21 13:21) [0]

Доброго всем дня!! Возникла проблема, может кто знает как решить?
Есть таблица такого вида

p1 p2 p3 p4 p5
-----------------------------------
75 90 140 170 40
20 130 30 50 120
140 130 120 90 110
100 90 110 93 79
37 92 105 143 120

Нужно постоить запрос так, чтобы выводилась такая ерунда:

p1 r1 p2 r2 p3 r3 p4 r4 p5 r5
------------------------------------------------
75 4 90 3 140 2 170 1 40 5
20 5 130 1 30 4 50 3 120 2
140 1 130 2 120 3 90 5 110 4
100 2 90 4 110 1 93 3 79 5
37 5 92 4 105 3 143 1 120 2

в общем, чтобы каждому числу в строке соответсвовала ее оценка, т.е. максимальное число на 1-м месте, чуть поменьше на 2-м и т.д.

Заранее спасибо за ответ


 
Johnmen ©   (2003-02-21 13:46) [1]

в MSSQL есть функция, что-то типа IIF, думаю она подойдет


 
stone ©   (2003-02-21 13:47) [2]

запрос слишком сложный получиться (в смысле трудночитаемый), лучше оформить в виде ХП


 
Vick ©   (2003-02-21 14:01) [3]

> stone

Да я в общем то и так ХП писать буду, другой вопрос с чего начать оное действие...


 
stone ©   (2003-02-21 14:27) [4]


> другой вопрос с чего начать оное действие...

CREATE PROCEDURE [OWNER].[PROCEDURE NAME] AS


 
Vick ©   (2003-02-21 14:43) [5]

логично... спасибо


 
Roma ©   (2003-02-21 17:54) [6]

>Vick © (21.02.03 13:21)

Что-то я не понимаю условия задачи - какие места, если в r1 две 5, в r2 две 4, в r3 - две 3, в r4 - опять две тройки, а в r5 - две 2, две 5, а первого места вообще нет?... И как это распределились места в r2, если там два значения 90 и два 130? Это не места. Как все-таки должна получаться оценка?...

Задачка-то интересная... ;) Если б был идентификатор, например, p_id integer identity(1, 1) not null, то рейтинг можно было бы посчитать так:

select T.P_ID, T.P1, count(T.P1) as R1
from P T
left outer join P T1 on T.P1 <= T1.P1
group by T.P_ID, T.P1
order by 1


Так как там все-таки с алгоритмом оценки?...



Страницы: 1 вся ветка

Текущий архив: 2003.03.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
1-39340
Ag2002
2003-03-01 13:22
2003.03.13
Сложение


3-39192
nicolaus
2003-02-21 12:19
2003.03.13
FIBPlusDataSet. После CancelUpdates и Refresh не убираются добавл


6-39460
alexe
2003-01-22 10:17
2003.03.13
Поскажите плз как написать telnet сервер на основе TIdTelnetServe


6-39436
Чудак
2003-01-23 16:04
2003.03.13
зная Имя определить IP - адрес машины в локальной сети


3-39220
pnv
2003-02-22 15:59
2003.03.13
Создание базы данных