2010-02-28 5 views
0

J'ai quelques tables qui sont des tables de transactions, et je voudrais faire un tableau croisé dynamique simple pour les bilans comparatifs .... qui se trouvent être le dernier enregistrement de chacune de ces tables dans un champ appelé "équilibre".MS Access 2003 - Combine le dernier enregistrement de plusieurs tables dans une requête ou une table?

donc je sais comment remplir ce formulaire sur une aide d'une instruction SQL, rs.MoveLast, mais je ne sais pas comment le tableau croisé dynamique sans avoir cela dans une table ....

merci !

EDIT:

C'est ce que j'ai utilisé! Merci 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) 

Maintenant, j'ai juste besoin de trouver un moyen d'insérer une chaîne de texte dans les champs correspondants qui identifie ce tableau la valeur vient.

par exemple, la requête ci-dessus renvoie

TransID  Balance 
123   $1000.00 
234   $20000.00 
345   $300000.00 

et j'ai besoin:

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

merci!

+3

Je dirais utiliser UNION ALL pour combiner les requêtes qui sélectionnent la dernière ligne de chaque table en question. – vladr

Répondre

3

Que définissez-vous le dernier enregistrement? Disons que c'est la date créée et que la date créée est unique, alors vous pouvez utiliser le SQL ci-dessous. Notez que les parenthèses sont importantes.

(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

encore une fois Remou, cela a bien fonctionné! Et j'apprécie comme toujours! C'était en fait la première fois que je mettais une requête UNION à utiliser ... merci! – Justin

+0

c'était un peu différent d'une simple date, en fait il y a un transID dans les deux tables, mais la méthode ci-dessus a bien fonctionné! Merci! – Justin

+0

@Remou: une question, quand j'utilise la méthode ci-dessus sur 8 tables différentes, cela fonctionne et j'obtiens la valeur correcte pour chacun. Le problème est qu'il n'y a rien dans la table résultante qui indique de quelle table elle provient. Existe-t-il une expression que je pourrais ajouter pour me permettre d'insérer une valeur textuelle (J'utilise un TransID au lieu de date, et la table résultante fait que ORDER BY liste par transID de chaque table qui changera toujours – Justin

Questions connexes