0
這對我剛纔的問題的後續問題:sql - min of 9 weeks max of 15 weeks average of 16 weeksSQL - 交叉表上需要澄清「q.type」 /爲平均/最小/最大聚集
我得到「輸入的q.Type
參數值」時我執行凍糕的真棒答案。
有人可以解釋爲什麼以及如何替換/指定它?
我不想手動輸入值,所有的時間..
下面是他的代碼答案:
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查詢(加盟兩個交叉表)
下一個交叉表需要另一個查詢源,特別是聚集的聯合查詢通過ItemCode與分類指標列:
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
最終查詢
SELECT t1.*, t2.*
FROM CrossTab1 t1
INNER JOIN CrossTab2 t2
ON t1.ItemCode = t2.ItemCode
你應該有'Type'列在UnionAggQ查詢中,你沒有它。另外「類型」是一個保留字,使用別名或將其括在方括號內 –