结合多个数据库的MS访问报告

时间:2016-08-21 10:21:46

标签: database ms-access reporting-services

我有3个不同的" .mdb"数据库(Microsoft Access) 让我们说"分支A","分支B"和"分支C" ,它们都有相同的数据库设计表和所有内容,我想生成一个报告,将它们全部组合在一起 ,像这样

Total Sales Report

Branch Name     Sales
Branch A        10000$
Branch B        23331$
Branch C        50000$

我该怎么做,是否可以使用链接数据库? 我可以使用交叉表查询将它们组合在一起吗?

谢谢:)

1 个答案:

答案 0 :(得分:1)

只需链接其他.mdb数据库中的表,然后运行您的报表查询,该查询似乎是每个 Branch 数据库中 Sales Table 的联合聚合查询。如果它们共享相同的名称,请务必重命名链接表( BranchASales BranchBSales BranchCSales ):

SELECT [Branch Name], Sum(Sales) As SumOfSales

FROM
   (SELECT 'Branch A' As [Branch Name], Sales FROM [BranchASales]
    UNION ALL
    SELECT 'Branch B' As [Branch Name], Sales FROM [BranchBSales]
    UNION ALL
    SELECT 'Branch C' As [Branch Name], Sales FROM [BranchCSales])

GROUP BY [Branch Name]

或者,只要指定路径,就可以在没有任何链接表的情况下运行调用当前数据库之外的源的查询。同样,您可以使用相同的方法查询Excel工作簿,csv / txt文件:

SELECT [Branch Name], Sum(Sales) As SumOfSales    

FROM
   (SELECT 'Branch A' As [Branch Name], Sales FROM [C:\Path\To\Branch A.mdb].[Sales] 
    UNION ALL
    SELECT 'Branch B' As [Branch Name], Sales FROM [C:\Path\To\Branch B.mdb].[Sales] 
    UNION ALL
    SELECT 'Branch C' As [Branch Name], Sales FROM [C:\Path\To\Branch C.mdb].[Sales])

GROUP BY [Branch Name]

在上面两个查询中,使用了派生表,但FROM子句SELECT查询可以很容易地用当前数据库中单独的存储查询(相同SELECT)替换。 / p>