Click here to Skip to main content
15,904,153 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
i have a query like that:

SELECT     FYear.Session, FeeHead.FeeHead ,  SUM(FeeItem.Amount) AS Total   
FROM         FeeItem 
INNER JOIN   FYear ON FYear.SessionID = FeeTransItem.SessionID
INNER JOIN   FeeHead ON FeeItem.FeeheadID = FeeHead.FeeHeadID       Where(FeeItem.FeeItemID = 18192)  
GROUP BY FYear.Tag ,FeeHead,FeeHead.Serial  


And its output like:-

Session    FeeHead        Total
20172018   tuition         2000
20172018   Admission(AC)   3000
20172018   Annual(AC)      3000


But i need output like:-

Session    FeeHead        Total
20172018   tuition         2000
20172018   AnnualCharges   6000



It means if feehead contain (AC) then feehead replace with AnnualCharges and also sum of total amount.

What I have tried:

SELECT     FYear.Session,case when FeeHead.FeeHead like '%(AC)%' then  replace(FeeHead.FeeHead,FeeHead.FeeHead,'Annual Charges')  else FeeHead.FeeHead end as FeeHead ,  
SUM(FeeItem.Amount) AS Total   
FROM         FeeItem 
INNER JOIN   FYear ON FeeItem.SessionID = FYear.SessionID 
INNER JOIN   FeeHead ON FeeItem.FeeheadID = FeeHead.FeeHeadID       Where(FeeItem.FeeItemID = 18192)  
GROUP BY FYear.Tag ,FeeHead,FeeHead.Serial  


But its not working.
Posted
Updated 27-Jul-17 20:21pm

Maybe you can use two separate queries and use UNION, in the first use:
SQL
WHERE FeeHead.FeeHead NOT LIKE '%(AC)%'
and in the second query use:
SQL
FeeHead.FeeHead LIKE '%(AC)%'
 
Share this answer
 
What you written absolute correct. only i introduced one more query for that output. may be it will help you.
with temp as (
SELECT FYear.Session, case when FeeHead.FeeHead like '%(AC)%' then  replace(FeeHead.FeeHead,FeeHead.FeeHead,'Annual Charges')  else FeeHead.FeeHead end as FeeHead,
SUM(FeeItem.Amount) AS Total   
FROM         FeeItem 
INNER JOIN   FYear ON FYear.SessionID = FeeTransItem.SessionID
INNER JOIN   FeeHead ON FeeItem.FeeheadID = FeeHead.FeeHeadID       Where(FeeItem.FeeItemID = 18192)  
GROUP BY FYear.Tag ,FeeHead,FeeHead.Serial  
)
select Session,FeeHead, SUM(Total) AS Total from temp
GROUP BY FeeHead
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900