2012-03-24 84 views
0

我有2表,從該表2的結果,我需要得到第三個表,我的第一臺查詢結果如下SQL查詢-join得到以下結果

select categeoryid,EmployeeId,SUM(Amount)as advance 
from ExpenditureDetails where Expenditurefor='Travel' and EmployeeId='TFIPL201145' 
group by categeoryid,EmployeeId 

categeoryid   EmployeeId   advance 
---------------------------------------------------- 
Local_IPL    TFIPL201145   1000 
Project_Audio release TFIPL201145   566565 
Project_Cricketscore TFIPL201145   441898 
Project_mayajal  TFIPL201145   1100 
Project_Tennis   TFIPL201145   8949 

第二個表的結果遵循

select categeoryid,EmployeeId,SUM(Amount)as submitted_amt 
from ExpenditureTravelling where EmployeeId='TFIPL201145' 
group by categeoryid,EmployeeId 

categeoryid   EmployeeId  submitted_amt 
------------------------------------------------- 
Event_Golf   TFIPL201145 36456 
Events_Hokey   TFIPL201145 1303 
local    TFIPL201145 25000 
Local_IPL   TFIPL201145 1169488 
Project    TFIPL201145 16000 
Project_Cricketscore TFIPL201145 216661 
Project_harris  TFIPL201145 53453 
Project_mayajal  TFIPL201145 1500 
Project_Tennis  TFIPL201145 8949 

我希望我的結果表應該是...加入2表

categeoryid    EmployeeId  advance  submitted_amt 
---------------------------------------------------------------------- 
Event_Golf    TFIPL201145  0   36456 
Events_Hokey    TFIPL201145  0   1303 
local      TFIPL201145  0   25000 
Local_IPL     TFIPL201145  1000   1169488 
Project     TFIPL201145  0   16000 
Project_Cricketscore  TFIPL201145  441898  216661 
Project_harris   TFIPL201145  0   53453 
Project_mayajal   TFIPL201145  1100   1500 
Project_Tennis   TFIPL201145  8949   8949 

u能plz幫助此查詢...獲得結果...

+2

你能否試着將問題的格式設置得更具可讀性?現在要比構建SQL更有效地解決問題。 – 2012-03-24 07:07:35

+0

嗨,joachim Isaksson,現在你可以閱讀我的查詢了嗎? – user1285783 2012-03-24 07:24:21

回答

0

您必須使用它們之間的相對鏈接來加入兩個查詢。據我所知,EmployeeId是一個很好的候選人。類似於:

select categoryId, EmployeeId, SUM(Amount) as advance, Travelling.submitted_amt 
from ExpenditureDetails inner join 
(select CategoryId, EmployeeId, sum(Amount) as submitted_amt 
    from ExpenditureTravelling) as Travelling on 
ExpenditureDetails.EmployeeId = Travelling.EmployeeId 
where 
    (EmployeeId='TFIPL201145') group by.... 

希望這會有所幫助。

0

選擇a.categoryId,a.EmployeeId,ISNULL(總和(a.Amount),0)作爲submitted_amt, ISNULL((選擇從ExpenditureDetails b總和(b.amount)其中b.categoryId = a.categoryId和b.Expenditurefor = '旅行' 組由b.categeoryid,b.EmployeeId)),0)作爲預先 從ExpenditureDetails一個 其中a.EmployeeId = 'TFIPL201145'
組由a.categeoryid,a.EmployeeId