Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL虚拟表_Sql_Ms Access_Ms Access 2003 - Fatal编程技术网

SQL虚拟表

SQL虚拟表,sql,ms-access,ms-access-2003,Sql,Ms Access,Ms Access 2003,我已将我的数据库设置为: 我拥有的每个产品都有自己的表,其中记录了销售数量/交易#(因此第1列是“交易ID”,第2列是“数量”) ex)p-反斜杠(其中p-表示“产品”) 也有每年的表格,其中保存了每一笔交易的记录。每个表都包含以下列:“transactionID”、“date”、“time”、“pt_CA”、“pt_DB”、“pt_VC”、“pt_MC”、“pt_CH”、“pt_AM” ex)sales-2008、sales-2009等 我希望能够引用一个表,该表保存每年的所有记录,而无需更改

我已将我的数据库设置为:

我拥有的每个产品都有自己的表,其中记录了销售数量/交易#(因此第1列是“交易ID”,第2列是“数量”)

ex)p-反斜杠(其中p-表示“产品”)

也有每年的表格,其中保存了每一笔交易的记录。每个表都包含以下列:“transactionID”、“date”、“time”、“pt_CA”、“pt_DB”、“pt_VC”、“pt_MC”、“pt_CH”、“pt_AM”

ex)sales-2008、sales-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

您所寻找的是一个“视图”,它实际上是一个存储语句,是一个格式正确的结果列表。您可以像查询表一样直接查询它。

您要查找的是一个“视图”,它几乎是一个存储语句,是一个格式正确的结果列表。您可以像查询表一样直接查询它。

在SQL中,正如Kyle的回答所述,您可以创建一个视图,这是一种虚拟表,但我强烈建议您在提交数据库结构之前,先获得一本书或谷歌的关系数据库设计

在SQL中,正如Kyle的回答所述,您可以创建一个视图,这是一种虚拟表,但我强烈建议您在致力于数据库结构之前,先获得一本书或谷歌的关系数据库设计

我希望能够引用一个表,该表保存每年的所有记录,而无需更改该表的sql以包含新的一年

这就是为什么您不应该为每个产品使用一个表,每年使用一个表

您需要的是一个“产品”表和一个“交易”表

我希望能够引用一个表,该表保存每年的所有记录,而无需更改该表的sql以包含新的一年

这就是为什么您不应该为每个产品使用一个表,每年使用一个表


您需要的是一个“产品”表和一个“事务”表。

不确定这个项目有多大,或者您的具体需求是什么(例如,如果您有与之相关联的代码),但您可能需要考虑将数据迁移到MS SQL(或MySQL等)。SQL Server有一个免费的桌面版,但只支持有限的功能集(其中包括视图)

MySQL、PostGre等支持您正在寻找的功能,包括PostGre中的继承表(不完全是您需要的,但类似)


我已经有一段时间没有使用Access了,我不确定它是否支持您正在寻找的功能。

不确定这个项目有多大,或者您的具体要求是什么(例如,如果您有与之相关联的代码),但您可能想考虑将数据迁移到MS SQL(或MySQL等)。SQL Server有一个免费的桌面版,但只支持有限的功能集(其中包括视图)

MySQL、PostGre等支持您正在寻找的功能,包括PostGre中的继承表(不完全是您需要的,但类似)


我已经有一段时间没有使用Access了,我不确定它是否支持您正在寻找的功能。

这种设计似乎很难使用。是否有理由选择这种设计而不是其他更容易使用的设计?我的第一个想法是将所有内容都包含在一张表中;任何超过“pt_AM”列的内容都是产品的数量。基本上,每当我做这样的事情时,我最终都会用完(从长远来看)专栏。每个产品都有一个表可以保证a)我不会有任何表包含过多的空条目,b)通过按年度划分销售额,查找时间会更短;考虑到报告通常是每月或某一年生成的(尽管由于发布的问题,我可能只会将所有事务信息合并到一个表中),这种设计似乎很难使用。是否有理由选择这种设计而不是其他更容易使用的设计?我的第一个想法是将所有内容都包含在一张表中;任何超过“pt_AM”列的内容都是产品的数量。基本上,每当我做这样的事情时,我最终都会用完(从长远来看)专栏。每个产品都有一个表可以保证a)我不会有任何表包含过多的空条目,b)通过按年度划分销售额,查找时间会更短;考虑到报告通常是每月或某一年生成的(尽管由于发布的问题,我可能只是将所有事务信息合并到一个表中)。这是个糟糕的设计,没错。这是一个糟糕的设计。为什么你认为“Access”不支持正确的表设计?实际上我说我不确定它是否支持他正在寻找的功能。我没有说不会。为什么你认为“Access”不支持正确的表设计?我实际上说我不确定它是否支持他正在寻找的功能。我没说不会。