4
특정 송장에 대한 고객을 목록으로 반환하는 sql을 작성하려고합니다.목록으로 SQL 결과
자신을 더 잘 설명하기 위해 내가 성취하려는 것을 보여주는 다이어그램을 첨부했습니다. 당신은 SQL 결과에서 볼 수 있듯이
본인은 SQL (SQL Server의 경우)를 달성 할 방법
invoices.number 각 목록으로 고객을 표시하는 SQL을 하시겠습니까?특정 송장에 대한 고객을 목록으로 반환하는 sql을 작성하려고합니다.목록으로 SQL 결과
자신을 더 잘 설명하기 위해 내가 성취하려는 것을 보여주는 다이어그램을 첨부했습니다. 당신은 SQL 결과에서 볼 수 있듯이
본인은 SQL (SQL Server의 경우)를 달성 할 방법
invoices.number 각 목록으로 고객을 표시하는 SQL을 하시겠습니까?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
당신은 꽤 좋은 데이터베이스 디자인을 가지고 있지만, 결과가 쉼표로 구분 된 값으로 설정되기를 원하는 이유가 무엇인지 궁금해합니다. 이것은 거의 좋은 생각이 아닙니다. –
@Shark, 꽤 표준적인 요구 사항처럼 보입니다. 왜 그것이 나쁜 생각이라고합니까? 그가 자신의 데이터베이스에 정보를 저장하는 것은 나쁜 생각이지만 비즈니스 요구 사항을 기반으로 데이터를 해당 형식으로 선택해야 할 경우 무엇이 상처 받는가? –
예, 프레젠테이션 목적으로 비즈니스 요구 사항입니다. – Yannick