I have 2 tables called Standards
and StandardDetails
Standards
x
ItemID ItemCode BranchID
------------------------------------
135576 555 1111
135576 555 2222
StandardDetails
ItemID ItemCode BranchID RcItemCode Numbers
-----------------------------------------------------------------
135576 555 1111 555 22
135576 555 1111 556 23
135576 555 2222 555 77
135576 555 2222 556 29
135576 555 2222 557 46
I want to concatenate two columns RcItemCode
and Numbers
from StandardDetails
and expected result looks like this:
ItemID ItemCode BranchID RcCodes
------------------------------------------------------------------
135576 555 1111 555-22,556-23
135576 555 2222 555-77,556-29,557-46
Seriously have no clue for converting rows into column and concatenate it.
Note
I need to make it as a VIEW
Advertisement
Answer
You may try this. Use group by
for grouping your id
and stuff
to concatenate your Code into comma separated values.
; with cte as (
select ItemID,ItemCode,BranchID,RcItemCode + '-' + Numbers as Code from StandardDetails
)
select ItemID,ItemCode,BranchID,
Stuff( (select ', ' + code from cte as c
where c.ItemID = ct.ItemID and c.ItemCode = ct.ItemCode and c.BranchID = ct.BranchID
for xml path('')),1,1,'') as RCode
from cte as ct
group by ItemID,ItemCode,BranchID
For View
Please try this.
Create view MyView
As
Begin
select ItemID,ItemCode,BranchID,
Stuff( (select ', ' + code from (select ItemID,ItemCode,BranchID,RcItemCode + '-' + Numbers as Code from StandardDetails) as c
where c.ItemID = ct.ItemID and c.ItemCode = ct.ItemCode and c.BranchID = ct.BranchID
for xml path('')),1,1,'') as RCode
from StandardDetails as ct
group by ItemID,ItemCode,BranchID
End