4
我正在嘗試構建一個sql,它將返回特定發票的客戶作爲列表。SQL結果作爲列表
爲了更好地解釋我自己,我附上了我想要完成的一個圖表。
,你可以從SQL結果看,我想的SQL,顯示客戶爲每個invoices.number
名單我將如何完成SQL(對於SQL Server)?
我正在嘗試構建一個sql,它將返回特定發票的客戶作爲列表。SQL結果作爲列表
爲了更好地解釋我自己,我附上了我想要完成的一個圖表。
,你可以從SQL結果看,我想的SQL,顯示客戶爲每個invoices.number
名單我將如何完成SQL(對於SQL Server)?
declare @Invoices table(ID int, Number varchar(10))
declare @Customers table(ID int, Name varchar(20))
declare @InvoiceCustomers table(InvoiceID int, CustomerID int)
insert into @Invoices values (1, 'INV01')
insert into @Customers values (1, 'NAME1'),(2, 'NAME2'),(3, 'NAME3')
insert into @InvoiceCustomers values (1, 1),(1, 2),(1, 3)
select I.Number as InvoicesNumber,
stuff((select ', '+C.Name
from @Customers as C
inner join @InvoiceCustomers as IC
on C.ID = IC.CustomerID
where IC.InvoiceID = I.ID
for xml path(''), type).value('.', 'varchar(max)'), 1, 2, '') as CustomersName
from @Invoices as I
優秀的作品...完美的作品 – Yannick
你有一個很好的數據庫設計進入這個,但它讓我困惑,爲什麼你想要一個結果集與逗號分隔值。這幾乎不是一個好主意。 – 2011-11-02 16:11:23
@Shark,這似乎是一個非常標準的要求。你爲什麼說這是一個壞主意?我同意,如果他將這些信息存儲在他的數據庫中是一個壞主意,但是如果他需要根據業務需求選擇這種格式的數據,它會受到什麼影響? –
是的,這是一個演示目的的業務需求。 – Yannick