我的SQL设计师目前不在,我需要得到一些(我认为很简单)LINQ完成了,我从来没有学过这些东西,但我认为这很简单,他甚至离开了我一些示例的SQL代码,但我所有的努力都失败了。
我想做的是:
我有一个OrderedItem
个对象列表,其中包含ItemName
,quantity
和PPU
。
我希望从中生成第二个列表,其中ItemNames
的所有订单项的quantity
总计ItemName
,PPU
的最大值Select ItemName
SUM(Quantity)
MAX(PPU)
FROM ..... (my list)
Group By ItemName
。
要清除这里是我留下的SQL。
{{1}}
我很感激获得LINQ版本的任何帮助。
答案 0 :(得分:5)
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)
};
答案 1 :(得分:1)
我认为你的课程是:
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)
});