我正在尝试实现以下 SQL 查询,该查询以我需要的方式进入 LINQ。我加入了 2 个单独的 SQL 查询,如果团体价格大于单个价格,则选择产品。我正在使用 LINQ to 对象,并为 Purchases 和 Products 表提供了一个对象工厂。
select DISTINCT(a.Name) from
(select p.Prod_ID, p.Name, SUM(p.Price) as Total
from Tb_AvailableProduct p, Tb_Purchases o
where p.Prod_ID = o.Prod_ID
group by p.Prod_ID, p.Name) a
JOIN
(select p.Prod_ID, p.Price
from Tb_AvailableProduct p, Tb_Purchases o
where p.Prod_ID = o.Prod_ID) b
on a.Prod_ID = b.Prod_ID
where a.Total > b.Price
我在 Linq 中有第一个查询,但我只想选择一个产品名称,如果该产品的组价大于产品的单个价格.. 即已售出多个产品。我试图用一个总和而不是一个计数来完成这个。
from o in this.myObjectFactory.ThePurchases
join p in this.myObjectFactory.TheProducts.Values
on o.ProductID equals p.ProductID
where o.CustomerID == customer.CustomerID
group p by p.ProductID into query1
select new { ProductID = query1.Key, TotalPurchasesThisYear = query1.Sum (p => p.Price)});