SQL Server Query с объединением и объединением двух строк в одну строку записи - PullRequest
0 голосов
/ 29 августа 2018

У меня была таблица с примерами, подобная этим

enter image description here

enter image description here

Я бы хотел получить окончательный результат для моего запроса таким образом

enter image description here

Понятия не имею, как создать SQL Server Query для архивирования результата, как было сказано. Не могли бы вы показать мне, как это работает?

С уважением,

1 Ответ

0 голосов
/ 29 августа 2018

Предполагая, что у вас не более двух строк, вы можете использовать row_number() для перечисления значений и условного агрегирования (или, если хотите, сводной диаграммы):

select m.movementid, m.arrflt, m.depflt,
       sum(case when seqnum = 1 then des else 0 end) as des_1,
       sum(case when seqnum = 1 then cargo else 0 end) as cargo_1,
       sum(case when seqnum = 1 then mail else 0 end) as mail_1,
       sum(case when seqnum = 1 then luggage else 0 end) as luggage_1,
       sum(case when seqnum = 2 then des else 0 end) as des_2,
       sum(case when seqnum = 2 then cargo else 0 end) as cargo_2,
       sum(case when seqnum = 2 then mail else 0 end) as mail_2,
       sum(case when seqnum = 2 then luggage else 0 end) as luggage_2
from movement m join
     (select md.*,
             row_number() over (partition by movementid order by movementid) as seqnum
      from movementdetail md
     ) md
     on md.movementid = m.movementid
group by m.movementid, m.arrflt, m.depflt;
...