2014-04-01 37 views
0

我使用的兩個表emp和表AM_ActionItems如何得到這個查詢

結構

emp

  • EMPID
  • 用戶ID
  • empemai

AM_ActionItems

  • AssignedBy
  • AssignedTo
  • assigndate
  • 交貨期
  • closedate

有一個沒有關係,但AssignedBy = AssignedTo = userid

select * 
from (select * 
     from AM_ActionItems as amp 
     where amp.DueDate > convert(date, dateadd(day, 0, getdate())) 
     and amp.DueDate <= convert(date, dateadd(day, +1, getdate())) 
     and amp.closeddate is null) as emp_det 
left outer join 
    emp on AssignedBy = userid 

子查詢工作

結果是

AssignedBy  AssignedTo   AssignedDate DueDate  closeddate 
Ponne.trichy Syed Jameel Pasha 2014-03-27  2014-04-02  NULL 
VenkatBiroje Rekha    2014-03-28  2014-04-02  NULL 

問題是

emp表我怎樣才能從emp表中的所有列assignedby = assignedto = userid

+0

Full outer join? – Nath

+1

你想要查詢沒有產生什麼? –

+0

所有記錄顯示我不想顯示只有4條記錄的所有記錄 – user3484750

回答

0

我認爲這個查詢會給你答案。

select emp.* 
from tbl_emp emp left join AM_ActionItems amp 
emp.userid=amp.assignedto self join AM_ActionItems amp1 
amp.assignedto =amp1.assignedto 
where amp.DueDate > convert(date, dateadd(day, 0, getdate())) 
     and amp.DueDate <= convert(date, dateadd(day, +1, getdate())) 
     and amp.closeddate is null 
0

想要選擇內部查詢結果的分配者或受讓者的所有用戶嗎?然後從emp中選擇並使用EXISTS查找是否可以找到匹配的記錄。

select * 
from emp 
where exists 
(
    select * 
    from AM_ActionItems as amp 
    where emp.empid in (AssignedBy, AssignedTo) 
    and amp.DueDate > convert(date, dateadd(day, 0, getdate())) 
    and amp.DueDate <= convert(date, dateadd(day, +1, getdate())) 
    and amp.closeddate is null 
); 
相關問題