Ok è questo:
CREATE TABLE [dbo].[tabColonne](
[idMacroSettoreEconomico] [int] NOT NULL,
[denominazione] [varchar](255) COLLATE Latin1_General_CI_AS NOT NULL
)
INSERT INTO [dbo].[tabColonne] ([idMacroSettoreEconomico] ,[denominazione]) VALUES( 1,tipo1)
INSERT INTO [dbo].[tabColonne] ([idMacroSettoreEconomico] ,[denominazione]) VALUES( 2,tipo2)
INSERT INTO [dbo].[tabColonne] ([idMacroSettoreEconomico] ,[denominazione]) VALUES( 3,tipo3)
CREATE TABLE [dbo].[tab1](
[idTab1] [int] NOT NULL,
[idMacroSettoreEconomico] [char](10) COLLATE Latin1_General_CI_AS NOT NULL,
[anno] [int] NOT NULL,
[addetti] [int] NOT NULL,
[nome] [varchar](255) COLLATE Latin1_General_CI_AS NOT NULL
)
INSERT INTO [dbo].[tab1] ([idMacroSettoreEconomico] ,[denominazione]) VALUES( 1,1,2006,10,marco)
INSERT INTO [dbo].[tab1] ([idMacroSettoreEconomico] ,[denominazione]) VALUES( 2,2,2005,30,marco)
INSERT INTO [dbo].[tab1] ([idMacroSettoreEconomico] ,[denominazione]) VALUES( 3,3,2004,20,marco)
INSERT INTO [dbo].[tab1] ([idMacroSettoreEconomico] ,[denominazione]) VALUES( 4,1,2006,10,luca)
INSERT INTO [dbo].[tab1] ([idMacroSettoreEconomico] ,[denominazione]) VALUES( 5,2,2005,30,luca)
INSERT INTO [dbo].[tab1] ([idMacroSettoreEconomico] ,[denominazione]) VALUES( 6,3,2004,20,luca)
INSERT INTO [dbo].[tab1] ([idMacroSettoreEconomico] ,[denominazione]) VALUES( 7,1,2006,10,rosi)
INSERT INTO [dbo].[tab1] ([idMacroSettoreEconomico] ,[denominazione]) VALUES( 8,2,2005,30,rosi)
INSERT INTO [dbo].[tab1] ([idMacroSettoreEconomico] ,[denominazione]) VALUES( 9,3,2004,20,rosi)
Una cosa del genere
nome--tipo1--tipo2--tipo3
marco 10 20 30
luca 10 20 30
rosi 10 20 30