Member 12871563 Ответов: 1

Sql: у меня есть проблемы с получением правильных данных из моей таблицы


Это моя проблема:
Я хотел бы узнать из таблицы, сколько участников отдают предпочтение усилиям 1-8.
Они ранжируют различные усилия от 1 до 3.
Сценарий сна заключается в том, что я могу сделать вывод, что А и с похожи на усилие 2, но разного ранга.
SQL должен дать что-то вроде:
А 2 1 С 2 2


Ранг A B C D
1 2 8 5 1
2 3 7 2 3
3 7 3 8 7

Что я уже пробовал:

Как бы я ни старался, я получаю один и тот же результат. Всегда первый ранг, который превосходит другой ранг. Поэтому, если А говорит усилие 2 на месте 1, Б говорит усилие 2 также на месте 1.

Peter Leow

Прошло уже четыре дня. Я сомневаюсь, что кто-то может понять тебя. Если вы что-то пробовали, вы должны показать свой код. Этот пример больше похож на лист excel, чем на таблицу базы данных.

1 Ответов

Рейтинг:
2

JonPoley3

Привет,

Я думаю, что проблема связана со структурой ваших данных. Нормализованный способ хранения его может быть в такой таблице, как эта:

CREATE TABLE #Efforts
(
	Participant nvarchar(15),
	Rank int,
	Effort int
)



Данные, которые вы представляете, будут выглядеть следующим образом:

Participant	Rank	Effort
A	1	2
A	2	3
A	3	7
B	1	8
B	2	7
B	3	3
C	1	5
C	2	2
C	3	8
D	1	1
D	2	3
D	3	7


И тогда ваш запрос становится тривиальным:

SELECT
	*
FROM
	#Efforts 
WHERE
	Effort = 2


что дает

Participant	Rank	Effort
   A	      1	      2
   C	      2	      2



Надеюсь, я понял вашу проблему и что это решение поможет.

Джон