Представьте, что у меня есть таблица MSSQL 2005 (bbstats), которая обновляется еженедельно, показывая различные совокупные категории достижений бейсбола для команды
week 1
Player H SO HR
Sammy 7 11 2
Ted 14 3 0
Arthur 2 15 0
Zach 9 14 3
week 2
Player H SO HR
Sammy 12 16 4
Ted 21 7 1
Arthur 3 18 0
Zach 12 18 3
Я хочу выделить текстуально, где для каждого лидера произошли изменениякатегория, поэтому после недели 2 нечего было бы сообщать о попаданиях (H);Зак присоединился к Артуру с большинством аутов (SO) в 18 лет;и Сэмми - новый лидер в homeruns (HR) с 4
. Поэтому я хотел бы настроить процесс примерно так: а) сохранить прошлые данные (неделя 1) в виде таблицы bbstatsPrior, б) обновить bbstats дляновые результаты - мне не нужна помощь с) c) сравнить таблицы для игрока (ов со связями) с максимальным значением для каждого столбца и выплевывать только там, где они отличаются d) перейти к следующему столбцу и повторить
В любом примере из реального мира было бы значительно больше столбцов для расчета
Спасибо
Отвечая на комментарии Бренца, я действительно после любых изменений в лидерах для каждой категории. Поэтому ябудет иметь что-то вроде
select top 1 with ties player
from bbstatsPrior
order by H desc
и
select top 1 with ties player,H
from bbstats
order by H desc
Затем я хочу сравнить игрока из каждого запроса (мне нужно сделать временные таблицы).Если они отличаются, я хочу вывести второй оператор выбора.Для категории H Тед является лидером `из обеих таблиц, но для других категорий есть изменения между неделями
. Затем я могу просмотреть столбцы, используя
select name from sys.all_columns sc
where sc.object_id=object_id('bbstats') and name <>'player'