2010-07-23 1 views
4

의 내가 주식의 무리 내가 쿼리를 작성하는 방법을 알고 싶어LINQ 쿼리는 이른 항목 당 다른 값 그랩

TableQuotes 
2010-07-22 09:45:00.000, "ABC", 102.23 
2010-07-22 09:45:00.000, "EFG", 24.65 
2010-07-22 09:45:00.000, "HIJ", 14.20 
2010-07-22 10:45:00.000, "ABC", 104.25 
2010-07-22 10:45:00.000, "EFG", 26.09 
2010-07-22 10:45:00.000, "HIJ", 12.43 
2010-07-23 09:45:00.000, "ABC", 101.23 
2010-07-23 09:45:00.000, "EFG", 23.65 
2010-07-23 09:45:00.000, "HIJ", 16.20 
2010-07-23 10:45:00.000, "ABC", 99.26 
2010-07-23 10:45:00.000, "EFG", 22.09 
2010-07-23 10:45:00.000, "HIJ", 11.43 
... 

인용 한 데이터베이스가 있다고 가정 해 봅시다 그 :
1. 그랩 하나 개의 재고 하루 심볼 당 인용
2. 각 심볼

에 대한 매일의 초기 주식 시세 그랩 그래서 예를 들어, 내 예를 들어 테이블에서 원하는 결과는 다음과 같습니다

Result 
2010-07-22 09:45:00.000, "ABC", 102.23 
2010-07-22 09:45:00.000, "EFG", 24.65 
2010-07-22 09:45:00.000, "HIJ", 14.20 
2010-07-23 09:45:00.000, "ABC", 101.23 
2010-07-23 09:45:00.000, "EFG", 23.65 
2010-07-23 09:45:00.000, "HIJ", 16.20 

답변

8
var result = from tq in TableQuotes 
group tq by new {tq.TimeStamp.Date, tq.Symbol} into g 
select g.OrderBy(tq => tq.TimeStamp).First(); 
+0

당신이 나를 이길;) –

+0

응? 이것은 날짜 당 하나의 기호 만 가져 오는 것처럼 보이지 않습니다. – PatrickSteele

+0

이것은 모든 회사가 아닌 가장 최근의 견적만을 수집합니까? – sgriffinusa

0

이 여기가 상황에주는 예 직선 사본의 당신이 http://msdn.microsoft.com/en-us/vcsharp/aa336746.aspx

을 원하는 LINQ 쿼리를 작성하는 방법을 파악을위한 훌륭한 자원이다

var categories = 
    from p in products 
    group p by p.Category into g 
    select new { Category = g.Key, TotalUnitsInStock = g.Sum(p => p.UnitsInStock) }; 
+0

이 코드 패턴은 무엇입니까? "p => p.UnitsInStock" – sooprise

+0

이것은 람다 식이라고합니다. – recursive

+0

익명 대리인.이 경우 람다 구문을 사용합니다. 더 완전한 답변을 보려면 여기를 클릭하십시오 -> http://stackoverflow.com/questions/978063/anonymous-delegates-in-c – JupiterP5

0

다음은 반환됩니다 요청 된 솔루션, 주어진 날짜에 각 회사에 대한 가장 빠른 견적.

var results = from q in quotes 
       group q by new { q.Symbol, q.TimeStamp.Date } into c 
       select new TableQuote() 
       { 
        Symbol = c.Key.Symbol, 
        TimeStamp = c.Min(ct => ct.TimeStamp), 
        Quote = c.OrderBy(ct => ct.TimeStamp).First().Quote 
       }; 
관련 문제