【发布时间】:2016-10-23 09:34:51
【问题描述】:
我正在寻找一种方法来创建 Access 交叉表查询,按“品牌”报告两个不同日期范围的销售总额。:
- 对于分销商:“DistID”(列,不可见)
- 销售额总计:“销售额”(列)
- 两个不同的日期范围:期间 1 和期间 2(列)的“depDate”:
Period1 = Between [forms]![frmRPT_YTDDepl_SF]![BDT1] And [forms]![frmRPT_YTDDepl_SF]![EDT1]Period2 = Between [forms]![frmRPT_YTDDepl_SF]![BDT2] And [forms]![frmRPT_YTDDepl_SF]![EDT2]
- 品牌 = “DprodBrand”(行)
目前,我每个时期都有两个单独的交叉表查询,工作正常。 -> 代码如下。
我正在寻找一种方法来创建一个查询,在两个单独的列或一个交叉表查询中显示品牌在每个日期范围内的销售总额。
期间1:
TRANSFORM Sum(tblDepletions_DETAIL.detQuan) AS Sales
SELECT tblProducts_DEPL.DprodBrand
FROM tblDepletions INNER JOIN (tblProducts_DEPL INNER JOIN tblDepletions_DETAIL ON tblProducts_DEPL.DprodZSKU = tblDepletions_DETAIL.detZSKU) ON tblDepletions.depID = tblDepletions_DETAIL.detDeplID
WHERE (((tblDepletions.depDate) Between [forms]![frmRPT_YTDDepl_SF]![BDT1] And [forms]![frmRPT_YTDDepl_SF]![EDT1]) AND ((tblDepletions.depDistID)=132))
GROUP BY tblProducts_DEPL.DprodBrand
ORDER BY tblProducts_DEPL.DprodBrand
PIVOT Format([depDate],"yy")-(Format(Date(),"yy"))+2 In (1,2);
时期2:
TRANSFORM Sum(tblDepletions_DETAIL.detQuan) AS Sales
SELECT tblProducts_DEPL.DprodBrand
FROM tblDepletions INNER JOIN (tblProducts_DEPL INNER JOIN tblDepletions_DETAIL ON tblProducts_DEPL.DprodZSKU = tblDepletions_DETAIL.detZSKU) ON tblDepletions.depID = tblDepletions_DETAIL.detDeplID
WHERE (((tblDepletions.depDate) Between [forms]![frmRPT_YTDDepl_SF]![BDT2] And [forms]![frmRPT_YTDDepl_SF]![EDT2]) AND ((tblDepletions.depDistID)=132))
GROUP BY tblProducts_DEPL.DprodBrand
ORDER BY tblProducts_DEPL.DprodBrand
PIVOT Format([depDate],"yy")-(Format(Date(),"yy"))+2 In (1,2);
非常感谢!!! ~~ 雅各布
【问题讨论】:
-
感谢大家的想法和合作!我非常感谢您在这项工作中的帮助和参与! ============== 已接受的解决方案:Dale Fye (Access MVP)2016-10-24 我不确定您是否需要 CrossTab。
Select DProdBrand, SUM(IIF([DepDate] BETWEEN [Forms]![frmRpt_YTDDepl_SF]![BDT1] AND [[forms]![frmRPT_YTDDepl_SF]![EDT1], [Sales], 0) as Period1, SUM(IIF([DepDate] Between [forms]![frmRPT_YTDDepl_SF]![BDT2] AND [forms]![frmRPT_YTDDepl_SF]![EDT2], [Sales], 0) as Period2, SUM([Sales]) as [Sales Total] FROM yourTable GROUP BY DProdBrand