Here is one way:-- Prepare sample dataDECLARE @Table1 TABLE (Client CHAR(4), Period INT)INSERT @Table1 (Client, Period)VALUES('CLI1', 2011001),('CLI2', 2011001),('CLI3', 2011001)DECLARE @Table2 TABLE (Code INT, Client CHAR(4), Amount INT)INSERT @Table2 (Code, Client, Amount)VALUES(10, 'CLI1', 20),(11, 'CLI1', 30),(13, 'CLI1', 50)-- Return resultsSELECT A.Client AS Code, A.Period, MAX(CASE WHEN B.Code = 10 THEN B.Amount ELSE NULL END) AS Code1, MAX(CASE WHEN B.Code = 11 THEN B.Amount ELSE NULL END) AS Code2, MAX(CASE WHEN B.Code = 13 THEN B.Amount ELSE NULL END) AS Code3FROM @Table1 AS AINNER JOIN @Table2 AS B ON A.Client = B.Client GROUP BY A.Client, A.Period