2012-04-13 1 views
0

J'ai 2 tables et se présente comme suitcondition join récupérer réponse indésirable

select Event_ID,[Gross Salary] from tblEar where Event_ID=14 

Résultat:

Event_ID Gross Salary 
14  56128 
14  51984 
14  42028 

Et:

select EventId, [Order Date],Amount from tblBudget where EventId=14 

Résultat:

EventId Order Date Amount 
14  10/10/2011 20000 
14  10/10/2011 20000 
14  20/03/2012 2500 
14  02/04/2012 -50000 

si j'écris une déclaration de jointure sur ces 2 tables pour l'obtenir est en train de récupérer des enregistrements en double. J'ai utilisé Distinct mais pas de résultat positif.

select DISTINCT tba.[Order Date],ISNULL(tba.Amount,0),ISNULL(te.[Gross Salary],0) from tblBudget tba 
        join 
         tblEar te on tba.EventId=te.Event_ID where tba.EventId=14 

J'ai obtenu les ans suivant:

Order Date (No column name) (No column name) 
2011-10-10 20000.00   42028.00 
2011-10-10 20000.00   51984.00 
2011-10-10 20000.00   56128.00 
2012-03-20 2500.00   42028.00 
2012-03-20 2500.00   51984.00 
2012-03-20 2500.00   56128.00 
2012-04-02 -50000.00  42028.00 
2012-04-02 -50000.00  51984.00 
2012-04-02 -50000.00  56128.00 

Peut-on montrer la voie pour obtenir des données Accuarate

+0

J'ai formaté votre question afin que les requêtes et les résultats puissent être lus (j'ai également changé l'ordre des deux premières requêtes en ce qui concerne aux résultats, puisque les ensembles de résultats semblent mieux correspondre aux requêtes). Mais vous ne nous avez pas dit quel résultat vous attendiez. –

Répondre

0

Je suppose que vous voulez regrouper les données et regrouper les montants:

SELECT tba.[Order Date], SUM(tba.Amount), SUM(te.[Gross Salary]) 
FROM tblBudget tba 
JOIN tblEar te on tba.EventId = te.Event_ID 
WHERE tba.EventId = 14 
GROUP BY tba.[Order Date] 
Questions connexes