아니, 뷰는 하나의 SELECT
문으로 구성되어 있습니다. 보기에서 표를 작성하거나 제거 할 수 없습니다.
아마도 common table expression (CTE)이 문제를 해결할 수 있습니다. CTE는 단일 명령문의 실행 범위 내에서 정의되는 임시 결과 세트이며 뷰에서 사용할 수 있습니다. (here에서 촬영)
예 - 당신은 임시 테이블로 SalesBySalesPerson
CTE 생각할 수 :
CREATE VIEW vSalesStaffQuickStats
AS
WITH SalesBySalesPerson (SalesPersonID, NumberOfOrders, MostRecentOrderDate)
AS
(
SELECT SalesPersonID, COUNT(*), MAX(OrderDate)
FROM Sales.SalesOrderHeader
GROUP BY SalesPersonID
)
SELECT E.EmployeeID,
EmployeeOrders = OS.NumberOfOrders,
EmployeeLastOrderDate = OS.MostRecentOrderDate,
E.ManagerID,
ManagerOrders = OM.NumberOfOrders,
ManagerLastOrderDate = OM.MostRecentOrderDate
FROM HumanResources.Employee AS E
INNER JOIN SalesBySalesPerson AS OS ON E.EmployeeID = OS.SalesPersonID
LEFT JOIN SalesBySalesPerson AS OM ON E.ManagerID = OM.SalesPersonID
GO
왜 각 유혹에 들어가는 select-statements를 결합하지 않습니까? –