Это последующий вопрос мой предыдущий вопрос: sql - min of 9 weeks max of 15 weeks average of 16 weeksSQL - необходимость уточнения «q.type» на кросс/агрегаты для средней/мин/макс
Я получаю «Введите значение параметра q.Type
», когда Я исполняю замечательный ответ parfait.
Может кто-нибудь объяснить, почему и как я могу его заменить или указать?
Я не хочу, чтобы вручную ввести значение все время ..
Ниже его код ответа:
Crosstab2 Запрос
TRANSFORM SUM(q.AggDetailQty)
SELECT q.ItemCode
FROM UnionAggQuery q
GROUP BY q.ItemCode
PIVOT **q.Type** IN ('AVG 16 WEEKS', 'MIN 9 WEEKS', 'MAX 15 WEEKS');
UnionAggQ запросов (присоединение оба кросс-таблицы)
Следующая кросс-таблица требует другого запроса как источник, в частности, объединение запросов агрегатов путем с категорическим Артикул метрической колонки:
SELECT Detail.ItemCode,
'AVG 16 WEEKS' AS Metric,
AVG(Detail.Quantity) AS AggDetailQty
FROM Detail INNER JOIN Header ON Detail.SalesOrderNo = Header.SalesOrderNo
WHERE Header.OrderDate >= DATEADD("ww",-16, Date())
GROUP BY Detail.ItemCode
UNION ALL
SELECT Detail.ItemCode,
'MIN 9 WEEKS' AS Metric,
MIN(Detail.Quantity) AS AggDetailQty
FROM Detail INNER JOIN Header ON Detail.SalesOrderNo = Header.SalesOrderNo
WHERE Header.OrderDate >= DATEADD("ww",-9, Date())
GROUP BY Detail.ItemCode
UNION ALL
SELECT Detail.ItemCode,
'MAX 15 WEEKS' AS Metric,
MAX(Detail.Quantity) AS AggDetailQty
FROM Detail INNER JOIN Header ON Detail.SalesOrderNo = Header.SalesOrderNo
WHERE Header.OrderDate >= DATEADD("ww",-15, Date())
GROUP BY Detail.ItemCode
Final Запрос
SELECT t1.*, t2.*
FROM CrossTab1 t1
INNER JOIN CrossTab2 t2
ON t1.ItemCode = t2.ItemCode
Вы должны иметь 'столбец type' в запросе UnionAggQ у вас его нет. Также «Тип» является зарезервированным словом, используйте другое имя или закройте его в квадратных скобках. –