Home Forums SQL Server 2008 SQL Server 2008 - General Trying to use Case Statement to get value into a GL Account with periods in the format RE: Trying to use Case Statement to get value into a GL Account with periods in the format

  • In both of them you're mixing character & numeric data joined by +.

    You need to CAST/CONVERT it all to character.

    What data type are [BU], [SUBSIDUARY] & [OBJECT]?

    CASE

    WHEN [ORDER_TYPE] = 'SS' or [ORDER_TYPE] = 'SP'

    THEN CAST([BU] AS VARCHAR(10)) + '.' + CAST([OBJECT] AS VARCHAR(10))

    ELSE

    CAST([BU] AS VARCHAR(10)) + '.'+ '14350' + '.' + CAST([SUBSIDIARY] AS VARCHAR(10))

    END

    Like this for instance:

    declare @a as table ([BU] Varchar(10), [ORDER_TYPE] Char(2), [SUBSIDIARY] Varchar(10), [OBJECT] Varchar(10));

    insert @a values ( 'BU1', 'SS', 'Slumpco', 'OBJECT1' );

    insert @a values ( 'BU2', 'AA', 'Slumpco2', 'OBJECT2' );

    select

    CASE

    WHEN [ORDER_TYPE] = 'SS' or [ORDER_TYPE] = 'SP'

    THEN [BU] + '.' + [OBJECT]

    ELSE

    [BU] + '.'+ '14350' + '.' + [SUBSIDIARY]

    END

    from @a