1
我有一个非常基本的SQL查询我试图重现:LINQ vb.net GROUP BY - 选择联接的列
SELECT t1.id, t1.name, count(*), min(t2.inserted) as inserted_first, max(t2.inserted) as inserted_last
FROM tbl1 t1
LEFT JOIN tbl2 t2 ON t1.id=t2.tbl1_id
WHERE t2.search=15
GROUP BY t1.id, t1.name
这工作非常适合我。它允许我通过t1.id和t1.name的唯一项进行分组,但也可以获得此对的出现次数,以及链接表的t2.inserted的最小值和最大值。问题是,现在当我把它变成LINQ时,我得到:
Dim query =
From t1 In ent.TBL1
Join t2 In ent.TBL2 On t1.id Equals t2.tbl1_id
Where (t2.search=15)
Group t1 By t1.id, t1.name Into Group
Select New With {
.id = id,
.name = name,
.count = Group.Count,
.min_value = ???,
.max_Value = ???
}
我失去了我能做些什么来选择最小和最大值。 Group.Min会工作,如果它与分组表相同,但由于它是在t2中,因此我无法引用它。我也不能将它添加到我的团队中,因为它不同。
请注意,tbl2链接到tbl2.tbl1_id - > tbl1.id上的tbl1。此外,这是我的问题的一个虚弱的例子,而不是真正的现场模式。
我很欣赏在这个问题上
当然,我可以随时移植C#。我将在今天晚些时候尝试,因为我正在结束一个12小时的工作之夜。谢谢! –