Следуйте этой схеме:
SELECT
lot.reagentlotid,
lot.reagentlotdesc,
MAX(CASE WHEN inf.attributeid = 'rl_a01' THEN inf.textvalue END) as rl_a01,
MAX(CASE WHEN inf.attributeid = 'rl_a02' THEN inf.textvalue END) as rl_a02,
... --add more "max case when" here
FROM
Reagent_lots lot
INNER JOIN
reagent_lots_additionalinfo inf
ON inf.reagentlotid = lot.reagentlotid
GROUP BY
lot.reagentlotid,
lot.reagentlotdesc
Если ..., добавьте столько повторений MAX CASE WHEN, сколько необходимо, чтобы покрыть преобразование строк атрибута в столбцы
Sqlserver имеет собственный синтаксис PIVOT, но я склонен делать сводки в этом шаблоне, потому что он работает для всех поставщиков баз данных