Я хочу выбрать данные из таблицы (SQL Server 2012) - группировать одно поле и возвращать все дубликаты в этой группе в виде списка, разделенного запятыми.Возвращает значения таблицы как список, разделенный запятой, в GROUP BY
Все решения, которые я видел до сих пор, не позволяют группе и возвращают единый список, разделенный запятой, для всей таблицы как переменной, которая не работает для меня.
Какой SQL мне нужен?
Это данные у меня есть:
BankingSlipID CashSheetSessionID BankingSlipNumber
1 10 abcabc
2 10 xyzxyz
3 10 123465789
4 11 9999999
5 11 55555
6 12 88888
Это то, что я хочу получить:
CashSheetSessionID BankingSlipNumber
10 abcabc, xyzxyz, 123465789
11 9999999, 55555
12 88888
SQL для создания таблицы источника (с данными):
CREATE TABLE [dbo].[BankingSlips](
[BankingSlipID] [int] IDENTITY(1,1) NOT NULL,
[CashSheetSessionID] [int] NOT NULL,
[BankingSlipNumber] [varchar](50) NOT NULL
) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[BankingSlips] ON
GO
INSERT [dbo].[BankingSlips] ([BankingSlipID], [CashSheetSessionID], [BankingSlipNumber]) VALUES (1, 10, N'abcabc')
INSERT [dbo].[BankingSlips] ([BankingSlipID], [CashSheetSessionID], [BankingSlipNumber]) VALUES (2, 10, N'xyzxyz')
INSERT [dbo].[BankingSlips] ([BankingSlipID], [CashSheetSessionID], [BankingSlipNumber]) VALUES (3, 10, N'123465789')
INSERT [dbo].[BankingSlips] ([BankingSlipID], [CashSheetSessionID], [BankingSlipNumber]) VALUES (4, 11, N'9999999')
INSERT [dbo].[BankingSlips] ([BankingSlipID], [CashSheetSessionID], [BankingSlipNumber]) VALUES (5, 11, N'55555')
INSERT [dbo].[BankingSlips] ([BankingSlipID], [CashSheetSessionID], [BankingSlipNumber]) VALUES (6, 12, N'88888')
SET IDENTITY_INSERT [dbo].[BankingSlips] OFF
GO
Какой SQL мне нужно написать, чтобы получить это?