I tried making a cursor, but it gave the same results, so I obviously did something wrong here.
What's new in this question is that I have included all the possible languages.
Below is the cursor I tried to make:
/*
IF OBJECT_ID('[#SALETYPE]','U') IS NOT NULL
DROP TABLE [#SALETYPE]
CREATE TABLE [#SALETYPE](
[SaleType_Id] [int] NOT NULL,
[name] [nvarchar](239) NOT NULL,
[tooltip] [nvarchar](254) NULL,
[saleTypeCat_id] [int] NOT NULL,
)
GO
INSERT INTO [#SALETYPE]
(
SaleType_Id
,name
,tooltip
,saleTypeCat_id
)
SELECT 5, 'US:"Project/Prescription sale";NL:"Project/specificatie";SW:"Objektsförsäljning";FI:"Projekti/suunnittelijamyynti";FR:"Projet / Vente par prescription";SP:"Proyecto /Prescripción";IT:"Vendita progetto/prescrizione"' ,'US:"Project/Prescription sale";NL:"Project/specificatie";SW:"Objektsförsäljning";FI:"Projekti/suunnittelijamyynti";FR:"Projet / Vente par prescription";SP:"Proyecto /Prescripción";IT:"Vendita progetto/prescrizione"' ,1 UNION ALL
SELECT 6, 'US:"Direct sale roofer";NL:"Directe verkoop dakdekkers";SW:"Direktförsäljning till TE";FI:"Suoramyynti kattourakoitsijoille";FR:"Ventes directes";SP:"Venta directa al instalador";IT:"Vendita diretta impermeabilizzatori"' ,'US:"Direct sale roofer";NL:"Directe verkoop dakdekkers";SW:"Direktförsäljning till TE";FI:"Suoramyynti kattourakoitsijoille"' ,0 UNION ALL
SELECT 7, 'US:"Service & Maintenance sale";FI:"Huoltomyynti";FR:"Ventes de services";SP:"Venta de servicio";IT:"Vendita di servizi"' ,'US:"Service & Maintenance sale";FI:"Huoltomyynti";FR:"Ventes de services";SP:"Venta de servicio";IT:"Vendita di servizi"' ,0 UNION ALL
SELECT 8, 'US:"Sales to distributor";FR:"Ventes distribution";SP:"Venta distribución";IT:"Vendite distribuzione"' ,'U' ,0
*/
/*
CREATE TABLE [#SaleBiz](
[SaleType_id] [int] NOT NULL,
[US] [nvarchar](200) NULL,
[SW] [nvarchar](200) NULL,
[SP] [nvarchar](200) NULL,
[NL] [nvarchar](200) NULL,
[PL] [nvarchar](200) NULL,
[IT] [nvarchar](200) NULL,
[FR] [nvarchar](200) NULL,
[FI] [nvarchar](200) NULL,
[NO] [nvarchar](200) NULL,
[DA] [nvarchar](200) NULL,
[GE] [nvarchar](200) NULL,
[CZ] [nvarchar](200) NULL,
[CN] [nvarchar](200) NULL,
[RU] [nvarchar](200) NULL,
[JP] [nvarchar](200) NULL
) ON [PRIMARY]
GO
*/
SET NOCOUNT ON
DECLARE @SaleType_id int
DECLARE @Country NVARCHAR(200)
DECLARE @name NVARCHAR (200)
DECLARE @US NVARCHAR(200)
DECLARE @SW NVARCHAR(200)
DECLARE @sp-2 NVARCHAR(200)
DECLARE @NL NVARCHAR(200)
DECLARE @PL NVARCHAR(200)
DECLARE @IT NVARCHAR(200)
DECLARE @FR NVARCHAR(200)
DECLARE @FI NVARCHAR(200)
DECLARE @NO NVARCHAR(200)
DECLARE @DA NVARCHAR(200)
DECLARE @GE NVARCHAR(200)
DECLARE @CZ NVARCHAR(200)
DECLARE @CN NVARCHAR(200)
DECLARE @RU NVARCHAR(200)
DECLARE @jp-2 NVARCHAR(200)
DECLARE SaleType_cursor CURSOR FOR
WITH Names AS
(
SELECT saletype_Id,
LEFT( Item, 2) AS Country,
SUBSTRING( Item, 5, LEN(Item) - 5) AS name
FROM #saletype
CROSS APPLY dbo.DelimitedSplit8K( name, ';') s
WHERE LEN(Item) > 5
)
SELECT --'saletype' AS List
n.saletype_id
, US= CASE WHEN n.country='US' THEN name ELSE '' END
, SW= CASE WHEN n.country='SW' THEN name ELSE '' END
, SP= CASE WHEN n.country='SP' THEN name ELSE '' END
, NL= CASE WHEN n.country='NL' THEN name ELSE '' END
, PL= CASE WHEN n.country='PL' THEN name ELSE '' END
, IT= CASE WHEN n.country='IT' THEN name ELSE '' END
, FR= CASE WHEN n.country='FR' THEN name ELSE '' END
, FI= CASE WHEN n.country='FI' THEN name ELSE '' END
, NO= CASE WHEN n.country='NO' THEN name ELSE '' END
, DA= CASE WHEN n.country='DA' THEN name ELSE '' END
, GE= CASE WHEN n.country='GE' THEN name ELSE '' END
, CZ= CASE WHEN n.country='CZ' THEN name ELSE '' END
, CZ= CASE WHEN n.country='CZ' THEN name ELSE '' END
, RU= CASE WHEN n.country='RU' THEN name ELSE '' END
, JP= CASE WHEN n.country='JP' THEN name ELSE '' END
FROM Names n
ORDER BY n.saletype_id
OPEN SaleType_cursor
FETCH NEXT FROM SaleType_cursor
INTO
@SaleType_id
,@US
,@SW
,@SP
,@NL
,@PL
,@IT
,@FR
,@FI
,@NO
,@DA
,@GE
,@CZ
,@CN
,@RU
,@JP
WHILE @@FETCH_STATUS=0
BEGIN
INSERT INTO [#SaleBiz]
(
[SaleType_id],
[US],
[SW],
[SP],
[NL],
[PL],
[IT],
[FR],
[FI],
[NO],
[DA],
[GE],
[CZ],
[CN],
[RU],
[JP]
)
VALUES
(
@SaleType_id
,@US
,@SW
,@SP
,@NL
,@PL
,@IT
,@FR
,@FI
,@NO
,@DA
,@GE
,@CZ
,@CN
,@RU
,@JP
)
FETCH NEXT FROM SaleType_cursor
INTO
@SaleType_id
,@US
,@SW
,@SP
,@NL
,@PL
,@IT
,@FR
,@FI
,@NO
,@DA
,@GE
,@CZ
,@CN
,@RU
,@JP
END
CLOSE SaleType_cursor
DEALLOCATE SaleType_cursor
SET NOCOUNT OFF
select * from #SaleBiz