2014-04-21 2 views
0

나는 이것이 내가동일한 아이디와 2 열 가입

|  Name  | Address |  Cellphone |  Email  | 
|  John  |  NY  |  n/a  | [email protected] | 
|  John  |  NY  | 123456781  |  n/a  | 

을 뭘하는지의 출력과 동일 ID하지만 서로 다른 연락처

로 선택한 행에 참여할 수있는 방법을 내 문제는 내가 원하는 내 출력이 제 Linq에

var an = (from a in db.Info 
      join b in db.Contact on a.ID equals b.InfoID 
      where b.ContactTypeID == 56 
      || b.ContactTypeID == 59 
      select new 
      { 
       a.ID, 
       a.LastName, 
       a.FirstName, 
       a.MiddleName, 
       b.ContactTypeID, 
       b.Values 
      }).ToList(); 

List<InfoList> wlist = new List<InfoList>(); 

foreach (var row in an) 
{ 
    InfoList ci = new InfoList 
     { 
      ID = row.ID, 
      Name = row.FirstName + " " + row.MiddleName + " " + row.LastName, 
      ContactType = GetLookupDisplayValById(row.ContactTypeID), 
      ContactValue = row.Values 
     }; 
    wlist.Add(ci); 
} 

return Json(wlist.ToList(), JsonRequestBehavior.AllowGet); 
,369 하나 라이너

|  Name  | Address |  Cellphone |  Email  | 
|  John  |  NY  |  123456781 | [email protected] | 

결합 될

누군가 나를 도와 줄 수 있기를 바랍니다.

답변

0

해당 데이터와 해당 데이터에 대해서만 자체 조인이 작동합니다. 다음은 linq로 변환 할 수있는 SQL입니다.

select name, address 
, case when t1.cellphone <> 'n/a' then t1.cellphone else t2.cellphone end cellphone 
, case when t1.email <> 'n/a' then t1.email else t2.email end email 
from yourtable t1 join your table t2 on t1.name = t2.name 
where t1.name = 'John' 
데이터가이처럼 보였다 경우 이

그러나,

|  Name  | Address |  Cellphone |  Email  | 
|  John  |  NY  | 365418794  | [email protected] | 
|  John  |  NY  | 123456781  |  n/a  | 

당신은 출력의 어떤 종류를 원하는 것 ?

+0

필자는 SQL Server 쿼리에서이 문제를 해결했으며 내 문제는이를 linq로 변환하는 방법입니다. –

-2
select max(Name),MAX(Address),MAX(Cellphone),MAX(Email) from grp group by Name