-5

enter image description here

How can I achieve this using SQL Server?

Can anyone please help me?

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
  • You should read this: https://stackoverflow.com/help/how-to-ask You should also probably search this site before asking your question since this question has likely been asked (and answered) many, many times before. – Tom H Nov 02 '17 at 14:45
  • Look into pivoting questions in SQL server tag for answers and examples. – Sergey Kalinichenko Nov 02 '17 at 14:46

1 Answers1

-1

Using PIVOT is what you need. Plenty of examples on Stack Overflow

To replicate the expected answer in the OP

DECLARE @tab TABLE (ID INT, CODE INT, ECODE VARCHAR(10))
INSERT INTO @tab
(ID, CODE, ECODE)
VALUES
(1, 101, 'error1'),
(1, 102, 'error2'),
(1, 103, 'error3'),
(1, 104, 'success'),
(2, 101, 'error1'),
(2, 102, 'error2'),
(2, 103, 'error3'),
(2, 104, 'success')


SELECT
      T.ID
    , MAX(CASE WHEN T.CODE = 101 THEN T.CODE END) 'CODE1'
    , MAX(CASE WHEN T.ECODE = 'error1' THEN T.ECODE END) 'ECODE1'
    , MAX(CASE WHEN T.CODE = 102 THEN T.CODE END) 'CODE2'
    , MAX(CASE WHEN T.ECODE = 'error2' THEN T.ECODE END) 'ECODE2'
    , MAX(CASE WHEN T.CODE = 103 THEN T.CODE END) 'CODE3'
    , MAX(CASE WHEN T.ECODE = 'error3' THEN T.ECODE END) 'ECODE3'
    , MAX(CASE WHEN T.CODE = 104 THEN T.CODE END) 'CODE4'
    , MAX(CASE WHEN T.ECODE = 'Success' THEN T.ECODE END) 'ECODE4'
FROM @tab T
GROUP BY T.ID
Mazhar
  • 3,797
  • 1
  • 12
  • 29