2016-01-04 14 views
0

这是我的SQL查询,用于检索数量总和,其中 产品具有相同的ID ,我想在LINQ中使用它。这是我的SQL查询,用于检索产品具有相同ID的数量总和,我想在LINQ中使用它

select p.ProductId,s.TotalQuantity,p.Title from Products p 
    join (SELECT ProductId, SUM(Quantity) AS TotalQuantity 
      FROM SalePerProduct s join Invoices i on s.InvoiceId = i.InvoiceId 
      where i.IssueDate like '%2016%' 
      GROUP BY s.ProductId) s 
    on s.ProductId = p.ProductId; 

我已经试过这LINQ查询,但它并没有正常工作,它总结了具有相同的产品ID的数量,但我无法用它来显示产品名称,需要一些帮助。 预先感谢您。

var sales = from sale in db.SalePerProducts 
         join product in db.Products 
         on sale.ProductId equals product.ProductId 
         where sale.ProductId == product.ProductId 
         group sale by sale.ProductId into g 
         select new 
         { 
          ProductId = g.Key, 
          Sum = g.Sum(sale => sale.Quantity), 
         }; 
+1

所以你想看看有多少个相同的ID产品?只是为了确保 – Niklas

+0

我想总结所有具有相同ID的产品,如果他们的ID相同,那么他们的标题也应该是相同的。 例如如果我有两个记录: 1 - 15巧克力200 5 2 - 15巧克力200 10 它应该成为15巧克力15 –

回答

1

下面是答案,最后我能够检索多个产品具有相同的名称和PRODUCT_ID作为一个创纪录的ANS也总结了数量,三江源大家。 请投票,如果你发现这很有

var sales = from sale in db.SalePerProducts 
         join product in db.Products 
         on sale.ProductId equals product.ProductId 
         join invoice in db.Invoices 
         on sale.InvoiceId equals invoice.InvoiceId 
         where sale.ProductId == product.ProductId && 
           invoice.IssueDate.Date == date 
         group sale by new { sale.ProductId,product.Title } into g 
         select new 
         { 
          ProductId = g.Key.ProductId, 
          Product_Title = g.Key.Title, 
          Quantity_Sold = g.Sum(sale => sale.Quantity) 
         }; 
1
var sales = from sale in db.SalePerProducts 
        join product in db.Products 
        on sale.ProductId equals product.ProductId      
        group new {sale, product} by sale.ProductId into g 
        select new 
        { 
         ProductId = g.Key, 
         Title = g.FirstOrDefault().product.Title, 
         Sum = g.Sum(s => s.sale.Quantity), 
        }; 

我去掉不必要的where子句中,你在你的版本都有。

+0

这不是没有必要在我的情况下,因为在哪里条款我匹配它的发行日期,非常感谢为您的反馈:) –

+0

对不起,我的版本与您原来的问题中的linq查询有关。我没有注意到与SQL查询的区别。 –

相关问题