sql query -join, чтобы получить следующий результат - PullRequest
0 голосов
/ 24 марта 2012

У меня есть 2 таблицы, из этого результата 2 таблицы, мне нужно получить 3-ю таблицу, мой результат запроса 1-й таблицы, как следует

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

2-й результат таблицы, как следует

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

Можете ли вы помочь PLZ по этому запросу ... чтобы получить результат ...

Ответы [ 2 ]

0 голосов
/ 24 марта 2012

выберите a.categoryId, a.EmployeeId, isnull (sum (a.Amount), 0) в качестве submit_amt, isnull ((выберите сумму (b.amount) из ExpenditureDetails b, где b.categoryId = a.categoryId и b.Expenditurefor = «Путешествие» по b.categeoryid, b.EmployeeId)), 0) по мере продвижения из расходов где a.EmployeeId = 'TFIPL201145'
группа по a.categeoryid, a.EmployeeId

0 голосов
/ 24 марта 2012

Вы должны объединить оба запроса, используя относительную связь между ними. Насколько я могу судить, 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....

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...