У меня есть запрос linq to sql, который производит дубликаты. я могу понять, как устранить эти дубликаты записей. Может быть, кто-то здесь может помочь. Идея состоит в том, чтобы получить сумму «общего» из таблицы 2, которая встречается для дат в таблице 1, которые больше, чем даты таблицы2, а также даты в таблице 2, которые больше, чем 2011-01-01. То, что я добился этого, но из-за дубликатов, я получаю ровно вдвое больше суммы. Ваша помощь очень ценитсяlinq to sql duplicates in query eith join
Таблица структуры:
table1: id, date
table2: id, date, total
Запрос
from t1 in table1
join t2 in table2 on t1.id equals t2.id into x
from y in x
where t1.id == "123" && t1.date > y.date && y.date > DateTime.Parse("2011-01-01")
group t1 by new { y.total} into g
select g.Sum(t1 => t1.total);
Возможно, у вас есть две строки в t2, соответствующие одной строке в t1. Join производит две строки, суммирует обе строки с дублирующимися значениями в полях t1. Вы должны заменить join где. –
Я пытаюсь это, но не могу понять, как это правильно записать. Это то, что у меня есть до сих пор var query = from t1 в таблице где (от t2 в t2 где t1.id == "123" && t1 .id == t2.id && t1.date> t2.date && t2.date> DateTime.Parse ("2011-01-01") выберите t2.total) группа t1 по t1.id в g выберите g.Sum (t2 => t2.total); –