2011-10-03 4 views
0

LinqPad 4 (nutshell 데이터베이스)를 사용 중이고 고객 테이블의 열인 (고객) 이름을 표시하려고합니다. '이름'에 대한 정의가 없으므로이 쿼리에서 이름을 어떻게 표시 할 수 있습니까?linq 표현 오류 : 캔트 표시 열 이름

from p in Purchases 
join c in Customers on p.CustomerID equals c.ID 
group p by p.Date.Year into SalesPerYear 
select new { 
customername= SalesPerYear.First().Name, 
customerid= SalesPerYear.First().CustomerID, 
totalsales= SalesPerYear.Sum(x=>x.Price) 
} 

답변

0

이 시도 ...

난 당신이 (가격, CustomerID를 및 날짜) 열이있는 구매 테이블이 있다고 가정 ..

from p in Purchases 
group p by p.Date.Year into SalesByYear 
select new { 
customerid = SalesByYear.First().CustomerID, 
year=SalesByYear.Key, 
TotalVal = SalesByYear.Sum(g => g.Price) 
} 
0

이미 고객 ID로 그룹화 했으므로 그룹화 키입니다. 즉, 귀하의 질의에 다음과 같이 말하십시오 : customerid = SalesByYear.Key. 귀하의 질의에 올해가 어디에서 왔는지는 확실하지 않습니다.

+0

내가 잘못된 쿼리에 넣어 미안 해요, 내가 그것을 업데이트 위 :) – user603007

+0

네, 고마워요! 다른 테이블에 가입하고 있는데 고객 테이블의 이름을 어떻게 표시 할 수 있습니까? – user603007

+0

데이터베이스의 Customer 테이블과 Purchase 테이블간에 외래 키 참조가있는 경우 외래 데이터베이스가 SalesByYear.First() Customer와 같은 탐색 속성이되므로 Purchase에서 Customer 개체로 이동할 수 있어야합니다. 이름. –