当前位置: 首页 > 面试题库 >

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

百里修真
2023-03-14
问题内容

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

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

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

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列,每个股票行情只显示一行。

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

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语句是什么?


问题答案:

使用交叉表查询,这样就无需在Access SQL中 “硬接线” YearQtr值。

我也认为ExecuteNonQuerySELECT查询中检索数据是错误的方法。但是,那是在此任务的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;


 类似资料:
  • 我现在在大学学习数据库,在我的项目中,我有3个表:、和 联赛(leagueId,leagueName) 团队(teamId,teamName) 具有(leagueId,teamId,year)

  • 我正在使用laravel作为我的web项目,我在更新数据库时遇到了一个问题。 我有一个错误信息在我的邮递员后张贴数据。这是消息。 这是我的函数代码,用于更新数据库中的一行。 我不知道我的代码是怎么回事,我在查询生成器上搜索“transact_id”,但错误消息显示我搜索了“id”。这很奇怪。我的问题有什么解决办法吗? 编辑:这是我的表格结构。https://imgur.com/gallery/s5

  • 问题内容: 我有一个典型的带有静态参数的交叉表查询。它与createStatement配合良好。我想使用preparestatement来查询。 但这似乎不起作用。 我得到一个PSQLException-无法使用在PreparedStatement上采用查询字符串的查询方法。 有什么想法我想念的吗? 问题答案: 您已经陷入了令人困惑的类型层次结构: 具有与相同的方法,但不应该使用它们,仅使用-–

  • 几个月前,我在使用java.sql时了解到了这一点。连接我需要关闭PreparedStatements和ResultSet,以防止内存泄漏,如下所述 然而,我最近开始与一个使用org.sql2o的新团队合作。连接,这是一个很好且有用的jdbc包装器,但我注意到它们通常不会关闭其org.sql2o。查询对象。 如您所见,查询对象从未显式关闭。我认为最好同时关闭查询: 但我不确定这是否真的有必要。如果

  • @查询(value=“select*from student where active=true”,nativeQuery=true)Iterable findactivestudents(字符串名); 我应该能够使用这个查询使用API

  • 我有这样的情况: 表一: 表二: 我需要把数量列在表2,使用“代码”作为关键字…谁能帮助我这个查询?我在用LibreOffice 预期结果