Переключить значения столбца - PullRequest
0 голосов
/ 17 марта 2019

У меня есть 2 такие таблицы.

MasterEntries с колонками:

  ParishName    AverageMark    
  Hanover         50.00
  Manchester      65.00
  Andrew          70.00

MasterScoreSheet с колонками:

 Hanover      Manchester    [St.Andrew]
 50.00        65.00         70.00

Я бы хотел, чтобы значения AverageMark столбца из MasterEntries стали значениями для соответствующих столбцов следующим образом:

 Hanover      Manchester    Andrew
 50.00        65.00         70.00

Как мне это сделать?

Ответы [ 3 ]

1 голос
/ 17 марта 2019

Вы хотите вставить эти значения в таблицу MasterScoreSheet?Вы можете сделать это так:

insert into MasterScoreSheet (Hannover, Manchester, Andrew)
select
  (select AverageMark from MasterEntries where ParishName = 'Hannover'),
  (select AverageMark from MasterEntries where ParishName = 'Manchester'),
  (select AverageMark from MasterEntries where ParishName = 'Andrew');

См. Демоверсию .

1 голос
/ 17 марта 2019

Если значения установлены на "Hanover","Manchester","Andrew" и у вас есть только 3 строки, вы можете использовать метод PIVOT():

SELECT * 
FROM MasterEntries
     PIVOT(MAX(AverageMark) FOR ParishName IN ("Hanover","Manchester","Andrew")) AS AvgMark
0 голосов
/ 17 марта 2019

Я бы написал этот запрос, используя условное агрегирование:

insert into MasterScoreSheet (Hannover, Manchester, Andrew)
    select max(case when ParishName = 'Hannover' then AverageMark from MasterEntries end),
           max(case when ParishName = 'Manchester' then AverageMark from MasterEntries end),
           max(case when ParishName = 'Andrew' then AverageMark from end)
    from MasterEntries;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...