[英]Convert query from MS Access to SQL Server
我對SQL的經驗有限,但我被要求從MS Access轉換下面的查詢。
TRANSFORM SUM(weekpace_crosstab.wgt) AS SumOfwgt
SELECT
Products.[Product Type], SUM(weekpace_crosstab.wgt) AS DeliveryTotal
FROM
(weekpace_crosstab
LEFT JOIN
Customer ON weekpace_crosstab.Customer = Customer.Customer) LEFT JOIN Products ON weekpace_crosstab.Product = Products.[Product Code]
WHERE (((Customer.[Customer Group])="Sainsbury"))
GROUP BY Products.[Product Type]
PIVOT weekpace_crosstab.Date;
這是結果......
通過谷歌和本論壇的其他問題,我寫了以下聲明。 但是,我無法將交付總額顯示在上圖中。
SELECT * FROM
(
SELECT P.[Product Type], wc.Date, sum (wc.wgt) AS DeliveryTotal
FROM weekpace_crosstab AS wc LEFT JOIN Customer AS C ON wc.Customer = C.Customer LEFT JOIN Products as p
ON wc.Product = P.[Product Code]
WHERE C.[Customer Group]='Co-op'
GROUP BY p.[Product Type], wc.Date, wc.wgt
) AS s
PIVOT
(
SUM (DeliveryTotal)
FOR [Date] in ([2017-01-23],[2017-01-24],[2017-01-25],[2017-01-26],[2017-01-27],[2017-01-28],[2017-01-29])
)AS pvt
ORDER BY [Product Type]
以下是此查詢的結果...
任何人都可以建議如何添加交付總欄?
感謝您的關注。
您需要將DeliveryTotal作為第二列添加,因為第一列正在由樞軸使用,它將僅顯示為已旋轉
嘗試
SELECT * FROM
(
SELECT P.[Product Type], wc.Date, sum (wc.wgt) AS DeliveryTotal, w.wgt
FROM weekpace_crosstab AS wc LEFT JOIN Customer AS C ON wc.Customer =
C.Customer LEFT JOIN Products as p
ON wc.Product = P.[Product Code]
LEFT JOIN (
SELECT SUM(wgt)wgt, Product
FROM weekpace_crosstab
WHERE Date IN ('2017-01-23', '2017-01-24', '2017-01-25', '2017-01-26', '2017-01-
27', '2017-01-28', '2017-01-29')
GROUP BY product) w ON w.Product = wc.product
WHERE C.[Customer Group]='Co-op'
GROUP BY p.[Product Type], wc.Date, w.wgt
) AS s
PIVOT
(
SUM (DeliveryTotal)
FOR [Date] in ([2017-01-23],[2017-01-24],[2017-01-25],[2017-01-26],[2017-01-
27],[2017-01-28],[2017-01-29])
)AS pvt
ORDER BY [Product Type]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.