I am working on a stored proc to convert the comma delimiter to pipe delimiter. I noticed that any delimiter was not given at all the the code. So now I am adding another SELECT on the top of existing query to add the pipe delimiter.
1. Let me know if this works... The final data goes into .csv file
2. I am getting the error Error converting data type varchar to numeric, when I give pipe delimiter, How to solve it?
3. I had to remove the ORDER BY clause in the query as it is giving an error that ORDER BY can not be there in in-line queries. How can I add ORDER BY in this code?
The procedure code is as follows :
CREATE PROCEDURE [dbo].[csp_Select_SKU_APOS
_Data_test
]
AS
SELECT SKU_No + ' | ' + SKU_Desc + ' | ' + List_Price + ' | ' + MOD_True_Cost + ' | ' + MOD_Brick_Cost + ' | ' +
MOD_SKU_Cost + ' | ' + SKU_EOL_Date + ' | ' + Business_Unit_Desc + ' | ' + Business_Unit_Id + ' | ' + Parent_Channel_Desc + ' | ' + Parent_Channel_ID
FROM
(
SELECT dbo.T_SKU_Fixed_Data.SKU_N
o,
dbo.TLk_SKU_Desc.SKU_Desc,
CAST(ROUND(dbo.T_SKU_BU_Pa
rent_Chann
el.SKU_Lis
t_Price , 2) AS decimal(18, 2)) AS List_Price,
SUM(CAST(ROUND(dbo.T_SKU_M
od.MOD_Tru
e_Cost, 2) AS decimal(18, 2))) AS MOD_True_Cost,
SUM(CAST(ROUND(dbo.T_SKU_M
od.MOD_Bri
ck_Cost , 2) AS decimal(18, 2))) AS MOD_Brick_Cost,
SUM(CAST(ROUND(dbo.T_SKU_M
od.MOD_SKU
_Cost , 2) AS decimal(18, 2))) AS MOD_SKU_Cost,
CONVERT(Char(12), dbo.T_SKU_Fixed_Data.SKU_E
OL_Date, 9) AS SKU_EOL_Date,
dbo.T_Business_Unit.Busine
ss_Unit_De
sc,
dbo.T_Business_Unit.Busine
ss_Unit_Id
,
dbo.TLk_Parent_Channel.Par
ent_Channe
l_Desc,
Parent_Channel_ID = CASE Parent_Channel_Desc
WHEN 'ENT' THEN ''
WHEN 'PAD' THEN '2MA_E'
WHEN 'PUB' THEN ''
WHEN 'HSB' THEN '2DD_E'
ELSE Parent_Channel_Desc END
FROM dbo.T_SKU_Fixed_Data INNER JOIN
dbo.TLk_SKU_Desc ON dbo.T_SKU_Fixed_Data.SKU_D
esc_RecId = dbo.TLk_SKU_Desc.SKU_Desc_
RecId INNER JOIN
dbo.TLk_Option_Class ON dbo.T_SKU_Fixed_Data.Optio
n_Class_Re
cId = dbo.TLk_Option_Class.Optio
n_Class_Re
cId INNER JOIN
dbo.T_SKU_BU_Parent_Channe
l ON dbo.T_SKU_BU_Parent_Channe
l.Pre_SKU_
No_RecId = dbo.T_SKU_Fixed_Data.Pre_S
KU_No_RecI
d INNER JOIN
dbo.T_BU_Parent_Channel ON
dbo.T_SKU_BU_Parent_Channe
l.BU_Paren
t_Channel_
RecId = dbo.T_BU_Parent_Channel.BU
_Parent_Ch
annel_RecI
d INNER JOIN
dbo.T_Business_Unit ON dbo.T_Business_Unit.BU_Rec
Id = dbo.T_BU_Parent_Channel.BU
_RecId INNER JOIN
dbo.TLk_Parent_Channel ON dbo.TLk_Parent_Channel.Par
ent_Channe
l_RecId = dbo.T_BU_Parent_Channel.Pa
rent_Chann
el_RecId INNER JOIN
dbo.TLk_Currency ON dbo.TLk_Currency.Ccy_RecId
= dbo.T_Business_Unit.Ccy_Re
cId INNER JOIN
(SELECT Dollar_Hedge_Rate, Ccy_RecId
FROM T_Currrency_Rate INNER JOIN
T_Fiscal_Year_Qtr ON T_Currrency_Rate.Fiscal_Yr
_Qtr_RecId
= T_Fiscal_Year_Qtr.Fiscal_Y
r_Qtr_RecI
d
WHERE GETDATE() BETWEEN T_Fiscal_Year_Qtr.Fiscal_Y
r_Qtr_Star
t_Date AND Fiscal_Yr_Qtr_End_Date) A ON
A.Ccy_RecId = dbo.TLk_Currency.Ccy_RecId
INNER JOIN
dbo.T_SKU_Mod ON dbo.T_SKU_Fixed_Data.Pre_S
KU_No_RecI
d = dbo.T_SKU_Mod.Pre_SKU_No_R
ecId AND
dbo.T_SKU_BU_Parent_Channe
l.SKU_BU_P
arent_Chan
nel_RecId = dbo.T_SKU_Mod.SKU_BU_Paren
t_Channel_
RecId
WHERE (dbo.TLk_Option_Class.Opti
on_Class = N'XYZ')
GROUP BY dbo.T_SKU_Fixed_Data.SKU_N
o, dbo.TLk_SKU_Desc.SKU_Desc,
CAST(ROUND(dbo.T_SKU_BU_Pa
rent_Chann
el.SKU_Lis
t_Price, 2) AS decimal(18, 2)), CONVERT(Char(12),
dbo.T_SKU_Fixed_Data.SKU_E
OL_Date, 9), dbo.T_Business_Unit.Busine
ss_Unit_De
sc, dbo.T_Business_Unit.Busine
ss_Unit_Id
,
dbo.TLk_Parent_Channel.Par
ent_Channe
l_Desc
HAVING (dbo.TLk_Parent_Channel.Pa
rent_Chann
el_Desc <> N'HSB') AND (NOT (dbo.T_SKU_Fixed_Data.SKU_
No IS NULL)) AND
(dbo.T_Business_Unit.Busin
ess_Unit_D
esc = N'United Kingdom')
UNION
SELECT dbo.T_SKU_Fixed_Data.SKU_N
o,
dbo.TLk_SKU_Desc.SKU_Desc,
CAST(ROUND(dbo.T_SKU_BU_Pa
rent_Chann
el.SKU_Lis
t_Price, 2) AS decimal(18, 2)) AS List_Price,
SUM(CAST(ROUND(dbo.T_SKU_M
od.MOD_Tru
e_Cost , 2) AS decimal(18, 2))) AS MOD_True_Cost,
SUM(CAST(ROUND(dbo.T_SKU_M
od.MOD_Bri
ck_Cost , 2) AS decimal(18, 2))) AS MOD_Brick_Cost,
SUM(CAST(ROUND(dbo.T_SKU_M
od.MOD_SKU
_Cost, 2) AS decimal(18, 2))) AS MOD_SKU_Cost,
CONVERT(Char(12), dbo.T_SKU_Fixed_Data.SKU_E
OL_Date, 9) AS SKU_EOL_Date,
dbo.T_Business_Unit.Busine
ss_Unit_De
sc,
dbo.T_Business_Unit.Busine
ss_Unit_Id
,
dbo.TLk_Parent_Channel.Par
ent_Channe
l_Desc,
Parent_Channel_Desc_Id =CASE Parent_Channel_Desc
WHEN 'REL' THEN '2MA_E'
WHEN 'HSB' THEN '2DD_E'
ELSE Parent_Channel_Desc END
FROM dbo.T_SKU_Fixed_Data INNER JOIN
dbo.TLk_SKU_Desc ON dbo.T_SKU_Fixed_Data.SKU_D
esc_RecId = dbo.TLk_SKU_Desc.SKU_Desc_
RecId INNER JOIN
dbo.TLk_Option_Class ON dbo.T_SKU_Fixed_Data.Optio
n_Class_Re
cId = dbo.TLk_Option_Class.Optio
n_Class_Re
cId INNER JOIN
dbo.T_SKU_BU_Parent_Channe
l ON dbo.T_SKU_BU_Parent_Channe
l.Pre_SKU_
No_RecId = dbo.T_SKU_Fixed_Data.Pre_S
KU_No_RecI
d INNER JOIN
dbo.T_BU_Parent_Channel ON
dbo.T_SKU_BU_Parent_Channe
l.BU_Paren
t_Channel_
RecId = dbo.T_BU_Parent_Channel.BU
_Parent_Ch
annel_RecI
d INNER JOIN
dbo.T_Business_Unit ON dbo.T_Business_Unit.BU_Rec
Id = dbo.T_BU_Parent_Channel.BU
_RecId INNER JOIN
dbo.TLk_Parent_Channel ON dbo.TLk_Parent_Channel.Par
ent_Channe
l_RecId = dbo.T_BU_Parent_Channel.Pa
rent_Chann
el_RecId INNER JOIN
dbo.TLk_Currency ON dbo.TLk_Currency.Ccy_RecId
= dbo.T_Business_Unit.Ccy_Re
cId INNER JOIN
(SELECT Dollar_Hedge_Rate, Ccy_RecId
FROM T_Currrency_Rate INNER JOIN
T_Fiscal_Year_Qtr ON T_Currrency_Rate.Fiscal_Yr
_Qtr_RecId
= T_Fiscal_Year_Qtr.Fiscal_Y
r_Qtr_RecI
d
WHERE GETDATE() BETWEEN T_Fiscal_Year_Qtr.Fiscal_Y
r_Qtr_Star
t_Date AND Fiscal_Yr_Qtr_End_Date) A ON
A.Ccy_RecId = dbo.TLk_Currency.Ccy_RecId
INNER JOIN
dbo.T_SKU_Mod ON dbo.T_SKU_Fixed_Data.Pre_S
KU_No_RecI
d = dbo.T_SKU_Mod.Pre_SKU_No_R
ecId AND
dbo.T_SKU_BU_Parent_Channe
l.SKU_BU_P
arent_Chan
nel_RecId = dbo.T_SKU_Mod.SKU_BU_Paren
t_Channel_
RecId
WHERE (dbo.TLk_Option_Class.Opti
on_Class = N'XYZ')
GROUP BY dbo.T_SKU_Fixed_Data.SKU_N
o, dbo.TLk_SKU_Desc.SKU_Desc,
CAST(ROUND(dbo.T_SKU_BU_Pa
rent_Chann
el.SKU_Lis
t_Price, 2) AS decimal(18, 2)), CONVERT(Char(12),
dbo.T_SKU_Fixed_Data.SKU_E
OL_Date, 9), dbo.T_Business_Unit.Busine
ss_Unit_De
sc, dbo.T_Business_Unit.Busine
ss_Unit_Id
,
dbo.TLk_Parent_Channel.Par
ent_Channe
l_Desc
HAVING (NOT (dbo.T_SKU_Fixed_Data.SKU_
No IS NULL)) AND
(dbo.T_Business_Unit.Busin
ess_Unit_D
esc + dbo.TLk_Parent_Channel.Par
ent_Channe
l_Desc <> N'United KingdomENT') AND
(dbo.T_Business_Unit.Busin
ess_Unit_D
esc + dbo.TLk_Parent_Channel.Par
ent_Channe
l_Desc <> N'United KingdomPAD') AND
(dbo.T_Business_Unit.Busin
ess_Unit_D
esc + dbo.TLk_Parent_Channel.Par
ent_Channe
l_Desc <> N'United KingdomPUB')
) a
--ORDER BY dbo.T_SKU_Fixed_Data.SKU_N
o, dbo.T_Business_Unit.Busine
ss_Unit_De
sc, dbo.TLk_Parent_Channel.Par
ent_Channe
l_Desc
Start Free Trial