左连接查询中的重复结果

时间:2021-01-10 20:57:02

标签: c# sql

select
  Users.emp as 'No',
  Users.username as Name,
  SUM(Inv_SubEMP.exchange_price) as Erad,
  coalesce(SandSD.val, 0) as s7obat, 
  ISNULL(Isnull(SUM(Inv_SubEMP.exchange_price),0) -
         IsNull(SandSD.val, 0),0) as Totol  
from
(
  (
    (Users join Inv_SubEMP on Users.username = Inv_SubEMP.emp
            and userType = 1 and IS_Deleted = 0)
    left join InvEMP on InvEMP.proc_id = Inv_SubEMP.proc_id
  )
  left join SandSD on SandSD.emp_id = Users.emp 
        and SandSD.IS_Deleted = 0
)
where InvEMP.IS_Deleted = 0
group by Users.emp, Users.username, Inv_SubEMP.emp, SandSD.val 
order by Users.emp

enter image description here

此查询收集了不同的函数,然后与另一个函数放在一起,但我基本上想知道如何重写 LEFT JOIN 部分以使其正常工作。

我正在尝试在此处添加自己的左连接,以便 .. 结果有时可以正常工作,有时不能正常工作 .. 有时我会像没有一样罚款。图 10 非常感谢

1 个答案:

答案 0 :(得分:0)

试试这个:

select
  Users.emp as 'No',
  Users.username as Name,
  SUM(Inv_SubEMP.exchange_price) as Erad,
  SUM(coalesce(SandSD.val, 0)) as s7obat, 
  ISNULL(Isnull(SUM(Inv_SubEMP.exchange_price),0) -
         IsNull(SandSD.val, 0),0) as Totol  
from
(
  (
    (Users join Inv_SubEMP on Users.username = Inv_SubEMP.emp
            and userType = 1 and IS_Deleted = 0)
    left join InvEMP on InvEMP.proc_id = Inv_SubEMP.proc_id
  )
  left join SandSD on SandSD.emp_id = Users.emp 
        and SandSD.IS_Deleted = 0
)
where InvEMP.IS_Deleted = 0
group by Users.emp, Users.username, Inv_SubEMP.emp
order by Users.emp
相关问题