Я прошу прощения за плохой заголовок, так как я не имел ни малейшего понятия, как лучше всего его произнести.
У меня есть таблица, в которой я возвращаю строки, подобные этой:
Opener | Closer | Policy Ref | Transaction Type
Agent A | Agent B | ABCD01EF01 | New Business
Agent C | Agent C | ZYXA01EF01 | New Business
Создать код
CREATE TABLE #temptable ( [Opener] varchar(50), [Closer] varchar(50), [PolicyRef] varchar(10), [Transaction Type] varchar(14) )
INSERT INTO #temptable
VALUES
( 'Agent C', 'Agent C', 'ZYXA01EF01', 'New Business' ),
( 'Agent A', 'Agent B', 'ABCD01EF01', 'New Business' )
DROP TABLE #temptable
В настоящее время мы в основном получаем 1,0 балла, для каждой строки, если Opener = Closer, тогда столбец «Score» должен быть равен 1,0 и возвращать только одну строку,однако, если Opener <> ближе, чем должно быть 2 строки с 'Score', разделенным на 0,5 между Opener и Closer, результат должен быть таким:
Agent | Policy Ref | Transaction Type | Score
Agent A | ABCD01EF01 | New Business | 0.5
Agent B | ABCD01EF01 | New Business | 0.5
Agent C | ZYXA01EF01 | New Business | 1.0
Я думал, что кросс-применение с row_numbering дляопределить, было ли больше одной строки в "Policy Ref", однако я не могу заставить его работать.
Я делал это ранее, однако это была хранимая процедура с использованием временных таблиц и cteчтобы обновить и переместить информацию, я ищу "обезжиренную" версию, если хотите.