Я прошу прощения за то, что задал вопрос, я уверен, что на него ответили много раз, но я не могу сказать ни слова, чтобы найти его.Даже ссылка на подобную проблему была бы очень признательна.
Если бы у меня была такая таблица:
+----+----------+-----+
|Name|Date |Score|
+----+----------+-----+
| Tom|2018-20-11| 100|
| Tom|2018-13-11| 95|
+----+----------+-----+
, как бы я запросил это, чтобы в каждой строке отображался столбец для оценкисегодня забил неделю назад и т.д.?В этом примере с примерами данных это будет одна строка, например
+----+----------+-----------+
|Name|ScoreToday|Score-7Days|
+----+----------+-----------+
| Tom| 100| 95|
+----+----------+-----------+
Я видел похожие проблемы, решаемые с помощью перекрестной покупки, я не могу решить это.Спасибо за вашу помощь:)
Пример кода:
if exists (select * from sys.tables where name = 'test') drop table test
go
create table test (
Name varchar(128)
, AsAt datetime
, Score int
)
insert test values ('Tom', getdate(), 87)
, ('Tom', getdate() - 2, 100)
, ('Tom', getdate() - 7, 95)
, ('Tom', getdate() - 1, 81)
, ('Tom', getdate() - 30, 95)