0

我正在编辑一个数据库Access 2007。以前,数据库有Columns: "Stocks Under Cover This Year""Stocks Under Cover Last Year."例如,

今年受保股票3

去年承保的股票2

我已将其更改table为有一个“年份”列。例如,

年份: 2012 年涵盖的股票2

年份: 2013 年涵盖的股票数量3

我的问题是,在我进行查询之前:Analyst Data.Stocks Under Cover This Year,我该如何更改它以适应我当前的表Years呢?如果我需要每年的查询,我需要在multiple columns查询中进行还是在同一列multiple year有条件?

我需要把它放在form上面写着的地方,

去年承保的股票2

今年受保股票3

请指教。

编辑:再添加一个例子,

在同一个查询中,我需要知道上一年的 4q 排名和当前年份的 4q 排名。

Table

Stocks_Under_Cover_Last_Year Stocks_Under_Cover_This_Year Rank_Previous_Year Rank_Current_Year
        2                                3                        32               31

Table

Year Stocks_Under_Cover Rank
2012        2            31               
2013        3            30

但我需要新查询来填写带有 Previous_Year_Rank: ... 等的表格。

相同的form格式:

Stocks_Under_Cover_Last_Year Stocks_Under_Cover_This_Year Rank_Previous_Year Rank_Current_Year
        2                                3                        32               31

编辑2:所以我认为我的解决方案是以一种形式使用多个查询。第一个查询将查询 2012 年并将选定的值放入表单中的字段中。第二个查询将查询 2013 年并将选定的值放置在表单的字段中。我不知道如何从多个查询中创建一个表单。

4

1 回答 1

0

首先,使用实际Field Valuesas是一个糟糕的设计Field Names。因此,最好的办法是将其更改Field Names为更合理的值并存储适当的值,也就是说,而不是Year2012Year2012Field Names更改为更通用但更具描述性的字段名称,例如YearStockCovered该字段上的值是 Years like2012或者2013相反。

因此,您可以轻松地查询这些表,例如:

SELECT YearStockCovered, COUNT(*) as StockCount 
FROM StockTable
GROUP BY YearStockCovered

您也可以考虑Normalization在此链接上学习(查看最底部)。这对于实现更明智的Database Design.

于 2013-06-14T12:49:19.047 回答