Объединение нескольких записей в одну запись - PullRequest
0 голосов
/ 17 ноября 2018

В основном я пытаюсь объединить две таблицы.Но вывод кажется совершенно отличным от НОРМАЛЬНОГО вывода, созданного JOIN.Это может звучать глупо, но, поскольку я не знаю, как это разработать, я подготовил снимок.(нажмите на ссылку ниже)

desired output

Отличие от обычного оператора JOIN состоит в том, что несколько записей таблицы "REAGENT_LOTS_ADDITIONALINFO" объединяются в одну запись таблицы REAGENT_LOTS.

Заранее, я должен вам, люди.Спасибо.

1 Ответ

0 голосов
/ 17 ноября 2018

Следуйте этой схеме:

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, но я склонен делать сводки в этом шаблоне, потому что он работает для всех поставщиков баз данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...