2012-08-07 82 views
3
SELECT Sum(dbo.amzOrdersItem.price) as SubTotal, 
      Sum(dbo.amzOrdersItem.shippingPrice) as ShippingTotal, 
      Sum(dbo.amzOrdersItem.price) + Sum(dbo.amzOrdersItem.shippingPrice) as OrderTotal 
FROM  dbo.amzOrders INNER JOIN 
      dbo.amzOrdersItem ON dbo.amzOrders.amzOrderId = dbo.amzOrdersItem.amzOrderId 
WHERE dbo.amzOrders.id = '14818' 
GROUP BY dbo.amzOrders.id 
+0

你尝试http://www.sqltolinq.com/? – Farhan 2012-08-07 16:37:18

回答

0

查询应该是这样的:

var query = 
    from order in db.amzOrders 
    join item in db.amzOrdersItems on order.amzOrderId equals item.amzOrderId 
    where order.Id == 14818 
    group item by order.Id into g 
    select new 
    { 
     SubTotal = g.Sum(i => i.Price), 
     ShippingTotal = g.Sum(i => i.ShippingPrice), 
     OrderTotal = g.Sum(i => i.Price) + g.Sum(i => i.ShippingPrice), 
    }; 

我不知道如果L2SQL查询供应商将能够在OrderTotal线正确地是肯定的翻译,希望这是很简单的。

0

也许这(但其未经测试):

var result = from order in Context.amzOrders 
      where order.id == '14818' 

      from orderItems in Context.amzOrdersItem 
       on order.amzOrderId equals orderItems.amzOrderId 
      into orderItemsJoinData 

      let subTotal = orderItemsJoinData.Sum(item => item.price) 

      let shippingTotal = orderItemsJoinData.Sum(item => item.shippingPrice) 

      select new 
      { 
       SubTotal = subTotal , 
       ShippingTotal = shippingTotal, 
       OrderTotal = subTotal + shippingTotal 
      };