У меня есть очень простой SQL-запрос, который я пытаюсь воспроизвести:
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 ссылается на tbl1 на tbl2.tbl1_id -> tbl1.id.Также это дурацкий пример моей проблемы, а не настоящая живая схема.
Я ценю любую помощь по этому вопросу