2009-07-08 4 views
1

의 내부 joning 나는 Linq에 이것을 번역하려고하고 그것을 알아낼 수 없습니다 :여러 그룹, Linq에

SELECT 
    CustomerOrder.ShipState, MONTH(OrderFulfillment.OrderDate) AS Mnth, 
    YEAR(OrderFulfillment.OrderDate) AS Yer, 
    SUM(OrderFulfillment.Tax) AS TotalTax 
FROM 
    OrderFulfillment INNER JOIN 
     CustomerOrder ONOrderFulfillment.OrderID =CustomerOrder.OrderID 
WHERE 
    (OrderFulfillment.Tax > 0) 
GROUP BY 
    CustomerOrder.ShipState, MONTH(OrderFulfillment.OrderDate), 
    YEAR(OrderFulfillment.OrderDate) 
ORDER BY 
    YEAR(OrderFulfillment.OrderDate) DESC, CustomerOrder.ShipState, 
    MONTH(OrderFulfillment.OrderDate) DESC 

내가 Linqpad을 가지고 예제의 무리를 통해 갔다 그러나이 알아낼 수 없습니다.

답변

0

난 당신이 그런 짓을 할 생각 : 여기

은 (아마도) 올바른 방향을 알려줄 수 있습니다 내가 최근 한 뭔가 그것을 컴파일하는 것은,하지만 나는 이것이 당신이 원하는 라인을 따라 뭔가라고 생각합니다.

아이디어는 먼저 고객과 주문을 연결하기 위해 조인을 수행하는 것입니다. 그런 다음 필터 조건을 적용하십시오.

그 시점에서 그룹 운영자가 적용되도록 특정 그룹이있는 모든 주문을 받고 싶습니다.

마지막으로 결과를 정렬 한 다음 각 그룹의 키에서 모든 정보를 선택하고 각 그룹의 세금을 합산합니다.

0

우선, 정확히 파악할 수없는 것을 아는 것이 좋습니다. 당신이 완전히 잃어버린 경우 어디에 시작 해야할지 모르겠다 linq 가입 및 그룹화에 대해 주위에 구글해야합니다. 나는 시도하지 않은

from c in CustomerOrder 
    join o in OrderFulfillment on c.OrderId equals o.OrderId 
where 
    o.Tax > 0 
group o by 
    new { c.ShipState, Mnth = of.OrderDate.Month, Yer = of.OrderDate.Year } 
     into g 
orderby 
    g.Key.Yer descending, g.ShipState, g.Key.Mnth descending 
select 
    new { g.Key.ShipState, g.Key.Mnth, g.Key.Yer, 
    TotalTax = g.Sum(i => i.Tax) }; 

:

// This groups items by category and lists all category ids and names 
from ct in Categories 
    join cst in Category_Subtypes 
    on ct.Category_Id equals cst.Category_Id 
    join st in Subtypes 
    on cst.Subtype_Id equals st.Subtype_Id 
where 
    st.Type_Id == new Guid(id) 
group ct by new { ct.Category_Id, ct.Display_Text } into ctg 
select new 
{ 
    Id = ctg.Key.Category_Id, 
    Name = ctg.Key.Display_Text 
} 
+0

큰 도움이되었습니다. - 감사합니다! – Slee