2017-02-02 1 views
3

저는 LINQ에 익숙하지 않아 SQL 쿼리를 LINQ로 변환하려고합니다. 내 SQL 쿼리는 다음과 같습니다SQL 쿼리를 LINQ로 변환하는 데 도움이 필요합니다.

select COUNT(DISTINCT PAYER) as count, 
     PPD_COL FROM BL_REV 
where BL_NO_UID = 1084 
GROUP BY PPD_COL 

원하는 출력은 다음과 같습니다

var PayerCount = from a in LstBlRev where a.DelFlg == "N" 
        group a by new { a.PpdCol} into grouping 
        select new 
        { 
         Count = grouping.First().PayerCustCode.Distinct().Count(), 
         PPdCol = (grouping.Key.PpdCol == "P") ? "Prepaid" : "Collect" 
        }; 

를하지만 나에게 원하는 출력을 제공되지 않습니다

Count PPD_COL 
    12  P 
    20  C 

내가 LINQ에 다음과 같은 것을 쓴 . 카운트는 PPD_COL 값 P & C에 대해 동일하게 반환됩니다. 여기에 무엇이 누락 되었습니까?

답변

1

groupby을 다음과 같이 변경하십시오. group 그룹에 필요한 속성 만 넣은 다음 by으로 그룹화 할 속성 하나만 만들면 익명 개체를 만들 필요가 없습니다.

var PayerCount = from a in LstBlRev 
       where a.DelFlg == "N" 
       group a.PayerCustCode by a.PpdCol into grouping 
       select new 
       { 
        Count = grouping.Distinct().Count(), 
        PPdCol = grouping.Key == "P" ? "Prepaid" : "Collect" 
       }; 
+1

감사합니다. @Gilad. 그것은 매력처럼 작동하고 있습니다! –

관련 문제