2014-11-03 56 views
0

我有两个表。我想拆分将数据行分成新的多个记录,并根据另一个表中列出的百分比计算字段,并将结果放入查询或新表中。根据百分比将行拆分为多个

表1:

ID  Value  Count 
1  100   10 
2  1000   100 

表2:

ID  ID2   Percent 
1   B   80% 
1   C   20% 
2   B   70% 
2   D   30% 

输出:

ID  ID2  Value  Count 
1  B   80   8 
1  C   20   2 
2  B   700   70 
2  D   300   30 

我可以做到这一点在Excel手动,但在表1中的输入将改变每一个月,所以不用说创建一个自动化的方式来做到这一点是更有效率。

+1

数据在哪里存储,例如它是在Excel电子表格,SQL Server数据库还是文本文件中?您想如何显示这些数据在DataGrid中,在TextBox中,还是在Web表单上? – 2014-11-03 23:58:13

+0

表1和表2都在MS Access表中,我希望输出可以是MS访问数据库中的查询结果或自己的新表 – cmarti12385 2014-11-04 00:14:21

回答

0

我对你的数据表作了两个假设,并在这里查看。

  1. OutputValue列等于Table1Value列乘以的Percent
  2. Output'Table2小号Count柱等于Table1Count列乘以Table2Percent

我也会对数据库模式进行一次更改:为了使乘法更好地工作,我会将所有的百分比都改为小数形式,以使它们更易于使用。在Access中,需要查看Table2的设计视图中的Percent列,单击底部面板中的Field Size,然后将其更改为Double

我在写下面的查询之前做了这个。

现在,如何展示你想要什么

我去访问数据库,并创建一个新的查询。一旦你在那里,点击View工具栏或功能区下拉按钮,然后点击SQL View。然后,您可以使用此代码来产生你的结果:

SELECT Table2.ID, Table2.ID2, Table1![Value]*Table2!Percent AS [Value], [Table1]![Count]*[Table2]![Percent] AS Count 
FROM Table1 INNER JOIN Table2 ON Table1.ID = Table2.ID; 

你也可以改变你的Value列的名字,因为这是一个Access保留字,后来可能会导致问题。

当你执行查询时,结果就会像你在你的例子中那样产生。然后,您可以使用此查询来填充应用程序。