Центр - SQL - оценивает от SubQuery

У меня есть простой запрос как это..

USE AdventureWorks;
GO

SELECT DaysToManufacture, AVG(StandardCost) AS AverageCost 
FROM Production.Product
GROUP BY DaysToManufacture; 



DaysToManufacture  AverageCost  
0                  5.0885  
1                  223.88  
2                  359.1082  
4                  949.4105  

Простой центр дает мне

SELECT 'AverageCost' AS Cost_Sorted_By_Production_Days,   
[0], [1], [2], [3], [4]  
FROM  
(SELECT DaysToManufacture, StandardCost   
    FROM Production.Product) AS SourceTable  
PIVOT  
(  
AVG(StandardCost)  
FOR DaysToManufacture IN ([0], [1], [2], [3], [4]) 
) AS PivotTable;  

Дает мне

Cost_Sorted_By_Production_Days   0                     1                     2                     3                     4

AverageCost                    5.0885                223.88                359.1082              NULL                  949.4105

Но значения в запросе центра являются hardcode.. Я хочу получить те значения от подзапроса..

select DaysToManufacture FROM Production.Product GROUP BY DaysToManufacture;

Но центр не позволяет мне получить значения от подзапроса, Есть ли какой-либо способ сделать это кроме записи динамично сгенерированного запроса?

8
задан Daniel Vassallo 17 February 2010 в 19:23
поделиться

1 ответ

Нет. Это можно сделать только с помощью динамического запроса. Мне тоже было бы интересно узнать, есть ли такой способ.

Есть несколько примеров, которые быстрый поиск в Google нашел, используя COALESCE для создания списка столбцов. Однако я предпочитаю создавать список столбцов с помощью STUFF. Однако я нашел эту статью об использовании CTE's и динамических поворотных точек, которая также может быть полезной

.
5
ответ дан 5 December 2019 в 22:18
поделиться
Другие вопросы по тегам:

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