我的数据库设置如下:
我拥有的每件产品都有自己的表格,用于记录销售数量/交易#(因此第1列为“transactionID”,第2列为“数量”)
ex)p-backScratcher(其中p-表示“产品”)
每年还有表格,其中包含经历的每笔交易的记录。这些表中的每一个都包含以下列:“transactionID”,“date”,“time”,“pt_CA”,“pt_DB”,“pt_VC”,“pt_MC”,“pt_CH”,“pt_AM”
ex)销售额 - 2008年,销售额 - 2009年等等。
我希望能够引用一个包含每年所有记录的表,而不必更改表的sql以包含新的一年。
所以例如,我想查询“p-backScratcher”的所有交易,我不想输入
SELECT sales-2008.date, sales-2009.date
FROM sales-2008, sales-2009
WHERE sales-2008.transactionID = p-backScratcher.transactionID
OR sales-2009.transactionID = p-backScratcher.transactionID
...而是:
SELECT sales.date
FROM sales
WHERE sales.transactionID = p-backScratcher.transactionID
答案 0 :(得分:4)
在SQL中,正如Kyle的回答所述,你可以创建一个 View ,这是一种虚拟表,但我强烈建议你拿一本书,或者谷歌, 关系数据库设计 ,然后再提交到数据库结构。
答案 1 :(得分:2)
我希望能够引用一个包含每年所有记录的表,而不必更改表的sql以包含新的一年。
这就是为什么你不应该每个产品和一个表每年使用一个表。
您需要的是一个“产品”表和一个“交易”表。
答案 2 :(得分:1)
您正在寻找的内容称为“视图”,它几乎是一个存储语句,它是一个格式正确的结果列表。您可以直接查询它,就像它是一个表格一样。
答案 3 :(得分:-2)
不确定这个项目有多大或者您的具体要求是什么(例如,如果您有与之关联的代码),但您可能希望将数据迁移到MS SQL(或MySQL等)。 SQL Server有一个免费的桌面版,但仅支持有限的功能集(视图包含在其中)。
MySQL,PostGre等支持您正在寻找的功能,包括PostGre中的继承表(不完全是您需要的,但类似)。
我暂时没有使用Access,我不确定它是否会支持您正在寻找的功能。