@nordwind2013

Как вывести результат cube в нужном порядке?

Есть вот такой запрос
SELECT 
	ISNULL(cast(Seller as varchar(30)), 
				case when GROUPING(Seller)=1
					 then 'ALL' end) as Seller,
	ISNULL(cast(ContactName as varchar(30)), 
				case when GROUPING(ContactName)=1
					 then 'ALL' end) as Cust,
	COUNT(*) AS Ammount 
	
FROM (SELECT EmployeeID,CONCAT(FirstName,' ',LastName) AS Seller 
FROM Northwind.Employees) A LEFT JOIN 
(SELECT EmployeeID,CustomerID 
FROM Northwind.Orders
WHERE YEAR(OrderDate)=1998 
GROUP BY EmployeeID,CustomerID) B 
ON A.EmployeeID=B.EmployeeID LEFT JOIN 
(SELECT ContactName,CustomerID FROM Northwind.Customers) C 
ON C.CustomerID = B.CustomerID
GROUP BY cube(ContactName,Seller)
ORDER BY ContactName,Seller

Сейчас он выводит Сперва ALL|ALL|Amount,
Далее - Имя|ALL|Amount,
а дальше уже идет вот так _4ovtG4-5k8.jpg
А вот как оно должно быть

Seller Customer Amount
ALL ALL <общее число продаж>
<имя> ALL <число продаж для данного продавца>
ALL <имя> <число продаж для данного покупателя>
<имя> <имя> <число продаж данного продавца для даннного покупателя>
  • Вопрос задан
  • 49 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы