2016-07-01 5 views
0

Пожалуйста, помогите мне! Newby с запросами SqlУдалить дубликаты столбцов из результата запроса

Select * 
from(
    select EmpID, 
      sum(IncomeTax) as TaxAmount, 
      sum(bsalary) as SalaryAmount 
    from PayrollHistory Pay 
    group by EmpID 
) cumSalary 
Right JOIN (
    Select PayrollHistory.EmpID, 
      (select firstName +' '+coalesce(middleInitial,' ')+' '+ lastName 
      from Employee 
      where Employee.EmpID=PayrollHistory.EmpID)as name, 
      PayrollHistory.IncomeTax, 
      (PayrollHistory.bsalary+sum(ISNULL(Allw.amount,0)))totalTaxableSUM 
    from PayrollHistory 
    left join (
      select * 
      from AllowanceHistory 
      where AllowanceHistory.taxStatus=1 
      ) as Allw 
     on Allw.EmpID=PayrollHistory.EmpID and Allw.payMonth=PayrollHistory.payMonth 
    where PayrollHistory.payMonth=3 
    group by PayrollHistory.EmpID, PayrollHistory.IncomeTax, PayrollHistory.bsalary 
) as tbl 
    on tbl.EmpID =cumSalary.EmpID 

Приведенный выше результат запроса дает 2 строки EmpID, которые являются одинаковыми. Как удалить одну из них и до сих пор получить тот же результат

+2

Этот код очень трудно прочитать. Можете ли вы применить некоторое форматирование? –

+0

Пожалуйста, сформулируйте вашу проблему. Получают ли вы повторяющиеся строки или дубликаты столбцов? – Jonny

+0

Покажите нам, пожалуйста. – CiccioRocca

ответ

1

Использование колонки выбор имени, вместо использования * см ниже

Select cumSalary.*,PayrollHistory.name , **....etc** from(
select EmpID, sum(IncomeTax) as TaxAmount,sum(bsalary) as SalaryAmount from  
PayrollHistory Pay group by EmpID 
) cumSalary 
Right JOIN (
Select PayrollHistory.EmpID,(select firstName +' '+coalesce(middleInitial,' 
')+' '+ lastName from Employee where 
Employee.EmpID=PayrollHistory.EmpID)as name, 
    PayrollHistory.IncomeTax,(  PayrollHistory.bsalary+sum(ISNULL(Allw.amount,0) 
))totalTaxableSUM 
from PayrollHistory 
left join (select * from AllowanceHistory where AllowanceHistory.taxStatus=1 
) as Allw on 
Allw.EmpID=PayrollHistory.EmpID and Allw.payMonth=PayrollHistory.payMonth 
where PayrollHistory.payMonth=3 
group by 
PayrollHistory.EmpID,PayrollHistory.IncomeTax,PayrollHistory.bsalary 
) as tbl on tbl.EmpID =cumSalary.EmpID 
2

Вместо первого Select * указать все строки, которые нужно нравится:

select cumSalary.EmpID, 
     cumSalary.TaxAmount, 
     cumSalary.SalaryAmount, 
     tbl.name, 
     tbl.IncomeTax, 
     tbl.totalTaxableSUM 

и т.д.

Смежные вопросы