我有这个查询
SELECT TblSales.ProductCode, TblSales.ProductName, TblSales.QtySold, Right([Zdate],7) AS [Mn/Yr]
FROM TblSales
WHERE (((TblSales.zDate) Between [Forms]![FrmSales]![From] And [Forms]![FrmSales]![FinalTo]))
GROUP BY TblSales.ProductCode, TblSales.ProductName, TblSales.QtySold, Right([Zdate],7);
我需要这个结果像这些列(ProductCode-ProductName-Sum Of QtySold在第一个月从给定的日期-第二个月-第三个月-等等)
示例:如果两个日期是#1-1-2018#到#31-3-2018# -这些日期可以更改,因为[Forms]![FrmSales]![From] And [Forms]![From][FinalTo]——
列:ProductCode - productname - jan -2018- feb -2018- March-2018行:a1 -电脑- 2000 - 2500 - 3000
前一个数量为两个日期之间每个月售出的总数量,提前感谢。
编辑1:我无法进行交叉表查询,这个消息弹出交叉表错误
可以使用交叉表查询将行数据转置到列中。像这样:
PARAMETERS StartDate DateTime, EndDate DateTime;
TRANSFORM NZ(Sum(tblSales.QtySold), 0) AS SumOfQtySold
SELECT tblSales.ProductCode, tblSales.ProductName
FROM tblSales
WHERE (((tblSales.zDate) Between [StartDate] And [EndDate]))
GROUP BY tblSales.ProductCode, tblSales.ProductName
PIVOT Format([tblSales].zDate,"mmm-yyyy");