首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要在我的CrossTab程序中创建一个生成这个表的VB.net查询

我需要在我的CrossTab程序中创建一个生成这个表的VB.net查询
EN

Stack Overflow用户
提问于 2013-09-25 18:11:13
回答 1查看 2.4K关注 0票数 3

我目前在MS Access中有一个名为Quarterly_Growth_Rates的查询,它生成下表:

代码语言:javascript
复制
Ticker  Year    Qtr Qtr_Growth  
AAPL    2013    3   21.46  
AMZN    2013    3   12.59  
BBBY    2013    3   4.11  
GOOG    2013    3   0.04  
V       2013    3   5.13  
AAPL    2013    2   -10.27  
AMZN    2013    2   4.01  
BBBY    2013    2   10.98  
GOOG    2013    2   10.74  
V       2013    2   7.66  
AAPL    2013    1   -20.07  
AMZN    2013    1   4.07  
BBBY    2013    1   14  
GOOG    2013    1   10.39  
V       2013    1   10.17  

我需要在我的CrossTab程序中创建一个VB.net查询,该查询将生成这个表:

代码语言:javascript
复制
Ticker  2013-3  2013-2  2013-1  
AAPL    21.46   -10.27  -20.07  
AMZN    12.59   4.01    4.07  
BBBY    4.11    10.98   14  
GOOG    0.04    10.74   10.39  
V       5.13    7.66    10.17  

所以现在,这个表显示了列:滴答,年份,Qtr,和Qtr_Growth,每季度每季度的每一个滴答。

我需要它来显示Ticker列,2013-1,2012-4,2012-3,并且每个滴答只显示一排。

到目前为止,我的程序中有以下代码:

代码语言:javascript
复制
Dim cmd4 As OleDbCommand = New OleDbCommand("SELECT Ticker FROM Quarterly_Growth_Rates GROUP BY Ticker PIVOT Qtr ", Nordeen_Investing_3.con)
cmd4.ExecuteNonQuery()

对于这个MS Access CrossTab查询,正确的SQL语句是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-25 20:15:09

使用交叉选项卡查询,这样您就不需要在Access SQL中“硬连接”YearQtr值。

此外,我认为ExecuteNonQuery是从SELECT查询中检索数据的错误方法。但是,这是任务的VB.Net部分,我只能在Access SQL方面帮助您。

我将查询源中的示例数据存储在一个名为YourQuery的表中。

在Access 2007中,下面的第一个查询提供了以下结果集:

代码语言:javascript
复制
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

它仅按列顺序与请求的输出不同。如果希望按下行时间段顺序排列列,请使用第二个查询。

注意,我的数据源是一个表,但您的数据源是一个查询。我之所以提到这种差异,是因为在构建交叉选项卡时,可能有一种更直接的方法从查询的源表开始获取所需的内容。

代码语言:javascript
复制
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;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19012184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档