2011-07-20 4 views
0

j'ai 3 tables comme indiqué sur le schéma: Table Designrequêtes SQL pour joindre deux colonnes d'une table avec d'autres tables

Les données de test dans chacune de ces tables est comme ci-dessous:

ACCOUNT_GROUP

 GroupID Name 
    101 Bank Accounts 
    105 Cash-in-hand 
    113 Indirect Expenses 
    120 Purchase Accounts 
    122 Sales Accounts 
    125 Sundry Creditors 

ACCOUNT_MASTER

AccID Name   GroupID 
1001 RBS A/C 23456 101 
1002 HSBC A/C 123456 101 
1003 CASH A/C  105 
1004 DISCOUNT  113 
1005 CASH SALES  122 
1006 CASH PURCHASE 120 
1007 JOHNSON   125 

ACCOUNT_TXNS

TxnID TxnDate FromAccID ToAccID Amt CrDr 
1 20-Jul-2011 1002 1003 250000 C 
2 20-Jul-2011 1001 1002 985241 C 
3 20-Jul-2011 1005 1003 65451 C 
4 20-Jul-2011 1006 1003 412874 D 
5 20-Jul-2011 1007 1003 521400 C 
6 20-Jul-2011 1003 1007 200  D 

Je veux obtenir les noms de compte de la FromAccID et ToAccID et leur nom de groupe dans une seule requête comme ceci:

TxnID TxnDate FromAcc   FromAccGroup  ToAcc   ToAccountGroup Amt CrDr 
1 20-Jul-2011 HSBC A/C 123456 Bank Accounts  CASH A/C   Cash-in-hand  250000 C 
2 20-Jul-2011 RBS A/C 23456 Bank Accounts  HSBC A/C 123456 Bank Accounts 985241 C 
3 20-Jul-2011 CASH SALES  Sales Accounts CASH A/C   Cash-in-hand  65451 C 
4 20-Jul-2011 CASH PURCHASE Purchase Accounts CASH A/C   Cash-in-hand  412874 D 
5 20-Jul-2011 JOHNSON   Sundry Creditors CASH A/C   Cash-in-hand  521400 C 
6 20-Jul-2011 CASH A/C  Cash-in-hand  JOHNSON   Sundry Creditors 200 D 

Veuillez m'aider à y parvenir.

Répondre

3

Vous pouvez utiliser la même table plus d'une fois dans une seule requête, utilisez simplement des alias.

Quelque chose comme

+0

Merci. Ça fonctionne! Mais une petite correction dans la dernière ligne: ACCOUNT_GROUP toAccGrp ON àAcc.GroupID = toAccGrp.GroupID – Nagesh

+0

OK, je l'ai corrigé. –