2010-02-28 42 views
0

我有两个表是交易表,我想为比较余额做一个简单的数据透视图......这恰好是名为“余额”的字段中每个表的最后一个记录。MS Access 2003 - 将多个表的最后一个记录合并到一个查询或表中?

,所以我知道如何使用SQL语句,rs.movelast填充此窗体上,但我不知道怎么去透视表图表,而不必到表这个....

感谢!

编辑:

这是我用的!感谢Remou!

(SELECT TOP 1 TransactionID, Balance 
FROM tblTrans001 
ORDER BY TransctionID DESC) 
UNION 
(SELECT TOP 1 TransactionID, Balance 
FROM tblTransaction02 
ORDER BY TransactionID DESC) 
UNION 
(SELECT TOP 1 TransactionID, Balance 
FROM Tranaction03 
ORDER BY TransID DESC) 

现在我只需要找到一种方法来插入一个文本字符串,用于标识什么表中的值是来自相应的字段。

例如,上述查询返回

TransID  Balance 
123   $1000.00 
234   $20000.00 
345   $300000.00 

,我需要:

TransID  Balance  Table/Account 
123   $1000.00  tblTransaction01 
234   $20000.00  tblTransaction02 
345   $300000.00  tblTransaction03 

的感谢!

+3

我会说使用UNION ALL来结合查询,从每个表中选择最后一行。 – vladr 2010-02-28 04:59:24

回答

3

你是如何定义最后一条记录的?让我们说这是创建的日期,并且创建的日期是唯一的,那么您可以使用下面的SQL。请注意,括号很重要。

(SELECT TOP 1 CrDate , Balance , "TranA" As FromTable 
FROM TransactionsA 
ORDER BY CrDate DESC) 
UNION 
(SELECT TOP 1 CrDate , Balance , "TranB" As FromTable 
FROM TransactionsB 
ORDER BY CrDate DESC) 
+0

再次Remou,那工作得很好!我一如既往地感激!这实际上是我第一次使用UNION查询来使用....谢谢! – Justin 2010-02-28 22:37:31

+0

它与仅仅一个日期有点不同,实际上两个表中都有一个transID,但上面的方法工作正常!谢谢! – Justin 2010-02-28 22:38:18

+0

@Remou:有一个问题,当我在8个不同的表上使用上述方法时,它的工作原理和我得到的每个表的正确值。麻烦的是,结果表中没有任何内容表示它来自哪个表。是否有一个表达式,我可以添加到这允许我插入一个文本值(我正在使用TransID而不是日期,并且结果表导致ORDER BY通过每个表的transID列出,它总是会更改 – Justin 2010-02-28 22:47:59

相关问题