SQL 分组依据的 LINQ 版本
LINQ version of SQL Group By
我的 SQL 设计师目前不在,我需要完成一些(我认为很简单的)LINQ,我从来没有抽出时间学习这些东西,但我认为它会很简单够了,他甚至给我留下了一些 SQL 示例代码,但我所有的努力都失败了。
我想做的是这样的:
我有一个 OrderedItem
对象的列表,其中包含 ItemName
、quantity
和 PPU
。
我想从中生成第二个列表,只有不同的 ItemNames
,所有具有 ItemName
的订单项的总计 quantity
,最大 PPU
.
清除这里是SQL我留下的
Select ItemName
SUM(Quantity)
MAX(PPU)
FROM ..... (my list)
Group By ItemName
如果能帮助我获得此的 LINQ 版本,我将不胜感激。
var query = from rec in dbo.TableName
group rec by rec.ItemName into ItemNameGroup
select new {
ItemName = ItemNameGroup.Key,
SumQuantity = ItemNameGroup.Sum(r => r.Quantity),
MaxPPU = ItemNameGroup.Max(r => r.PPU)
};
我假设你的 class 是:
class OrderedItem
{
public string ItemName { get; set; }
public decimal Quantity { get; set; }
public int PPU { get; set; }
}
然后您可以使用扩展方法编写以下 LINQ 查询:
var objects = new List<OrderedItem>();
objects.GroupBy(x => x.ItemName).Select(x => new
{
ItemName = x.Key,
Quantity = x.Sum(y => y.Quantity),
PPU = x.Max(y => y.PPU)
});
我的 SQL 设计师目前不在,我需要完成一些(我认为很简单的)LINQ,我从来没有抽出时间学习这些东西,但我认为它会很简单够了,他甚至给我留下了一些 SQL 示例代码,但我所有的努力都失败了。
我想做的是这样的:
我有一个 OrderedItem
对象的列表,其中包含 ItemName
、quantity
和 PPU
。
我想从中生成第二个列表,只有不同的 ItemNames
,所有具有 ItemName
的订单项的总计 quantity
,最大 PPU
.
清除这里是SQL我留下的
Select ItemName
SUM(Quantity)
MAX(PPU)
FROM ..... (my list)
Group By ItemName
如果能帮助我获得此的 LINQ 版本,我将不胜感激。
var query = from rec in dbo.TableName
group rec by rec.ItemName into ItemNameGroup
select new {
ItemName = ItemNameGroup.Key,
SumQuantity = ItemNameGroup.Sum(r => r.Quantity),
MaxPPU = ItemNameGroup.Max(r => r.PPU)
};
我假设你的 class 是:
class OrderedItem
{
public string ItemName { get; set; }
public decimal Quantity { get; set; }
public int PPU { get; set; }
}
然后您可以使用扩展方法编写以下 LINQ 查询:
var objects = new List<OrderedItem>();
objects.GroupBy(x => x.ItemName).Select(x => new
{
ItemName = x.Key,
Quantity = x.Sum(y => y.Quantity),
PPU = x.Max(y => y.PPU)
});