我一直在阅读和深入研究SQL,现在我对此感到困惑。我有一个示例表是:
Date Quantity Type Date_Entered
01/02/15 23 Orange 10/01/15
01/02/15 10 Red 10/01/15
01/02/15 18 Yellow 10/01/15
02/02/15 15 Yellow 10/01/15
02/02/15 19 Red 10/01/15
. . . .
. . . .
Date是预计销售的日历日期,Quantity是销售数量,Type是产品类型(可能会随类型的数量而变化),Date_Entered是将数据放入表中并给出预测的日期其他列。对于每个Date_Entered,都有日期范围(例如2015年全年)。对于每个日期,都有每种类型可用。
现在,我一直在尝试通过MS Access中的SQL查询来透视表(因为我正在Excel中使用它与宏一起使用)以获取如下表:
Date Orange Red Yellow
01/02/15 3 2 5
02/02/15 0 -2 -1
03/02/15 8 -1 2
. . . .
. . . .
其中的值是特定日期从一个Date_Entered到另一个Date(例如,一周,一个月,一个季度的预计销售额变化)之间的销售数量之差。
到目前为止,我已经改进了以下内容:
TRANSFORM IIF(FIRST([Date_Entered]) > LAST([Date_Entered]),
FIRST([Quantity]) - LAST([Quantity]),
LAST([Quantity]) - FIRST([Quantity]))
SELECT [Date] FROM Sales WHERE [Date_Entered] = #2015-01-10# OR #2015-01-20#
GROUP BY [Date] ORDER BY [Date] PIVOT [Type]"
但是,FIRST()似乎只是带出零,因此上述内容并未提供正确的数字。我认为,我的问题是计算出表的值所需的汇总。希望有人能指出我正确的方向。
感谢您的任何答复。
我认为问题出在您的WHERE子句中。代替
WHERE [Date_Entered] = #2015-01-10# OR #2015-01-20#
尝试
WHERE [Date_Entered] IN( #2015-01-10#, #2015-01-20# )
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句