使用交叉表查询,这样就无需在Access sql中 “硬接线” Year
和Qtr
值。
我也认为ExecuteNonQuery
从SELECT
查询中检索数据是错误的方法。但是,那是在此任务的VB.Net方面,我只能为您提供Access sql的帮助。
我将来自您的查询源的样本数据存储在名为 YourQuery 的表中。
在Access 2007中,下面的第一个查询为我提供了此结果集:
Ticker 2013-1 2013-2 2013-3
AAPL -20.07 -10.27 21.46
AMZN 4.07 4.01 12.59
BBBY 14 10.98 4.11
GOOG 10.39 10.74 0.04
V 10.17 7.66 5.13
它仅在列顺序上与请求的输出不同。如果要按时间段降序排列列,请使用第二个查询。
另请注意,我的数据源是一个表,但您的是一个查询。我提到了这种差异,因为在构建交叉表时,可以通过从查询的源表开始,找到一种更直接的方式来获取所需的信息。
TRANSFORM First(y.Qtr_Growth) AS FirstOfQtr_Growth
SELECT y.Ticker
FROM YourQuery AS y
GROUP BY y.Ticker
PIVOT y.Year & '-' & y.Qtr;
TRANSFORM First(y.Qtr_Growth) AS FirstOfQtr_Growth
SELECT y.Ticker
FROM YourQuery AS y
GROUP BY y.Ticker
ORDER BY y.Year & '-' & y.Qtr DESC
PIVOT y.Year & '-' & y.Qtr;