Выбор нескольких строк с одинаковыми значениями

Выбор нескольких строк с одинаковыми значениями

Имеем  2 таблицы вида
Таблица AnalizCreate

Таблица AnalizData



То есть в таблице "SC_Chemlog"."T_AnalizData" лежат поля необходимые поля "F_AnalizCreate_ID", "F_Value"
В таблице  "SC_Chemlog"."T_AnalizCreate" лежит поле "F_DateAnaliz", "F_ActualAnaliz_ID".

Необходимо получить следующее
результат

































Код:
 SELECT
  "F_DateAnaliz",
  string_agg(case when "F_AnalizElement_ID" = 3 or "F_AnalizElement_ID" = 5 then "F_Value" end,' ') as fe,
  string_agg(case when "F_AnalizElement_ID" = 2 or "F_AnalizElement_ID" = 4 then "F_Value" end,' ') as fe0,
  string_agg(case when "F_AnalizElement_ID" = 6 or "F_AnalizElement_ID" = 7 then "F_Value" end,' ') as nom,
   "ID_AnalizCreate"
FROM
"SC_Chemlog"."T_AnalizData"

 INNER JOIN "SC_Chemlog"."T_AnalizCreate"
     ON ("ID_AnalizCreate" = "F_AnalizCreate_ID" and "F_ActualAnaliz_ID" = 3)
GROUP BY "F_DateAnaliz", "ID_AnalizCreate" ;

Поясню:
  string_agg(case when "F_AnalizElement_ID" = 3 or "F_AnalizElement_ID" = 5 then "F_Value" end,' ') as fe,   - складываем пустые строки, для чисел будет sum.
 INNER JOIN "SC_Chemlog"."T_AnalizCreate"
     ON ("ID_AnalizCreate" = "F_AnalizCreate_ID" and "F_ActualAnaliz_ID" = 3) - выбираем значения по  условию
GROUP BY "F_DateAnaliz", "ID_AnalizCreate" ; - группируем по полю

Комментарии

Популярные сообщения из этого блога

Пишем логи на C# (.NET). Легкий способ.

Учебник yii2