Please allow me to post my sample data and queries:
Table1:
--create item master table
CREATE TABLE [dbo].[itemMaster](
[ItemNumber] [int] NOT NULL,
[ItemDescription] [varchar](15) NOT NULL
) ON [PRIMARY]
--insert sample data into item master table
INSERT INTO [itemMaster]
([ItemNumber]
,[ItemDescription])
VALUES
('57893','ItemDescription1')
,('57894','ItemDescription2')
,('57895','ItemDescription3')
,('57896','ItemDescription4')
,('57897','ItemDescription5')
--create reference table
CREATE TABLE [dbo].[RefTable](
[ReferenceNumber] [varchar](12) NOT NULL,
[ItemNumber] [int] NOT NULL
) ON [PRIMARY]
--insert sample data into reference table
INSERT INTO [RefTable]
([ReferenceNumber]
,[ItemNumber])
VALUES
('57893','PRE70')
,('57893','PRE71')
,('57894','PRE115')
,('57895','DIS50')
,('57896','39020043')
,('57897','39020057')
When I now run the following query as suggested:
SELECT
ItemNumber
,ItemDescription
,(SELECT ReferenceNumber FROM RefTable WHERE ItemNumber= m.ItemNumber FOR XML PATH('ItemReference'),type)
FROM itemMaster m
FOR xml path ('Item'),type , root ('AllParts')
I get a result that shows every reference number as its own element:
<AllParts>
<Item>
<ItemNumber>57893</ItemNumber>
<ItemDescription>ItemDescription</ItemDescription>
<ItemReference>
<ReferenceNumber>PRE71</ReferenceNumber>
</ItemReference>
<ItemReference>
<ReferenceNumber>PRE70</ReferenceNumber>
</ItemReference>
</Item>
...
but what I would like the XML to look like is as follows:
<AllParts>
<Item>
<ItemNumber>57893</ItemNumber>
<ItemDescription>ItemDescription</ItemDescription>
<ItemReference>
<ReferenceNumber>PRE71</ReferenceNumber>
<ReferenceNumber>PRE70</ReferenceNumber>
</ItemReference>
</Item>
How can I accomplish this?
Thanks for your patience and help.