【发布时间】:2014-12-30 18:05:13
【问题描述】:
我一直在阅读并深入研究 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 到另一个日期之间的差异(例如,一周、一个月、季度的预计销售额变化)。
到目前为止,我已经进化了以下内容:
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() 似乎只是带出零,所以上面没有给出正确的数字。我认为,我的问题是计算出计算表值所需的聚合。希望有人能指出我正确的方向。
感谢您的任何回复。
【问题讨论】: