Код: Выделить всё
IEnumerable query =
from ls in db.Lieferscheine
join l in db.Lieferadressen on ls.Lieferadresse.LieferadresseID
equals l.LieferadresseID
join tb in db.TagestourBestehtAusLieferadresse on l.LieferadresseID equals tb.LieferadresseID
join t in db.Tagestouren on tb.TagestourID equals t.TagestourID
join f in db.Fahrer on t.Fahrer.FahrerID equals f.FahrerID
where ls.Lieferdatum.Year == tb.Uhrzeit.Year && ls.Lieferdatum.Month == tb.Uhrzeit.Month && ls.Lieferdatum.Day == tb.Uhrzeit.Day
group new
{
ls,
l,
tb,
t,
f
} by new
{
t.TagestourID,
t.Name,
t.VorlageStandardtour.StandardtourID
} into deb
select new Tagestourauswertung()
{
TagestourID = deb.Key.TagestourID,
Tagestourname = deb.Key.Name,
StandardtourID = deb.Key.StandardtourID,
Deckungsbeitrag = deb.Sum(x => x.ls.Deckungsbeitrag) - deb.Sum(y => y.t.Kosten) - deb.Sum(z => z.t.Zeit * z.f.KostenProStunde),
Rentabilität = deb.Sum(x => x.ls.Deckungsbeitrag) / (deb.Sum(y => y.t.Kosten) + deb.Sum(z => z.t.Zeit * z.f.KostenProStunde))
};
var tagesAuswertung = new List(query);
return View(tagesAuswertung);
У нас есть в db. В Лифершайне сохранено несколько адресов, куда мы доставляем. У этих адресов есть идентификатор, а также сохраняется доход.
В таблице Tagesour мы сохраняем наши ежедневные туры с идентификатором, а также стоимость.
Адреса из Таблица Lieferscheine может принадлежать ежедневным турам.
Таким образом, один ежедневный тур может содержать множество адресов.
Моя проблема в том, что если я хочу подсчитать свой выигрыш, то когда я захочу используйте формулу:
Код: Выделить всё
sum(yield) - costs of the tour
Как мне это решить?
Я хочу, чтобы только стоимость тура суммировалась когда в таблице Lieferscheine сохранено два или более адресов, принадлежащих разным ежедневным турам.
В случае, если все они или некоторые из них принадлежат к одному ежедневному туру, это должно быть уменьшено только на стоимость этого тур, а не умноженный на количество адресов, принадлежащих туру...
Мой расчет находится под выбором
{ Deckungsbeitrag= deb. Sum(x=>x.ls.Deckungsbeitrag(это доходность из таблицы Lieferscheine)) - deb.Sum(y=>y.t.Kosten(это стоимость определенного тура)
С этой частью у меня самая большая проблема.
Надеюсь, кто-нибудь из вас сможет дать мне совет
Подробнее здесь: https://stackoverflow.com/questions/306 ... conditions