Мне нужно создать представление из нескольких таблиц.Один из столбцов в представлении должен состоять из ряда строк одной таблицы в виде строки с разделенными запятыми значениями.
Вот упрощенный пример того, что я хочу сделать.
Customers:
CustomerId int
CustomerName VARCHAR(100)
Orders:
CustomerId int
OrderName VARCHAR(100)
Между Клиентом и Заказами существует отношение один ко многим.Поэтому, учитывая эти данные
Customers
1 'John'
2 'Marry'
Orders
1 'New Hat'
1 'New Book'
1 'New Phone'
, я хочу, чтобы представление было таким:
Name Orders
'John' New Hat, New Book, New Phone
'Marry' NULL
Так, чтобы ВСЕ отображались в таблице независимо от того, есть у них заказы или нет.1012 *
У меня есть хранимая процедура, которую мне нужно перевести в это представление, но кажется, что вы не можете объявлять параметры и вызывать хранимые процедуры в представлении.Любые предложения о том, как получить этот запрос в представлении?
CREATE PROCEDURE getCustomerOrders(@customerId int)
AS
DECLARE @CustomerName varchar(100)
DECLARE @Orders varchar (5000)
SELECT @Orders=COALESCE(@Orders,'') + COALESCE(OrderName,'') + ','
FROM Orders WHERE CustomerId=@customerId
-- this has to be done separately in case orders returns NULL, so no customers are excluded
SELECT @CustomerName=CustomerName FROM Customers WHERE CustomerId=@customerId
SELECT @CustomerName as CustomerName, @Orders as Orders