Что я должен набрать в миграции, если я хочу умножить 2 значения из двух разных таблиц?ASP.NET MVC Entity Framework - PullRequest
0 голосов
/ 18 октября 2018

Это то, что я должен завершить, «Рассчитать общую стоимость содержания животных. Что получается путем сложения стоимости продуктов питания (стоимость продуктов питания * вес животных), стоимости жилья».Я не знаю, как сделать расчет для всех (PetWeight из таблицы PetRescued) * (FoodCost из таблицы PetSpecies) и вставить его в мою таблицу MaintenanceCost.

И

Например, у меня есть 4 вида домашних животных: кошка, собака, кролик и грызун.HousingCost для домашних животных составляет 10,20,30,40. Это Таблица 1. Для Таблицы 2, которая является PetRescued, Как рассчитать сумму HousingCost для количества кошек / собак / ... / ..., которыеЯ имею в своей базе данных PetRescued и вставляю ее в мою таблицу MaintenanceCost.

Это моя сущность PetRescued, которая также является одной из таблиц

public class PetRescued
{
    public int Id { get; set; }

    public string PetName { get; set; }
    public int PetAge { get; set; }
    public string PetGender { get; set; }
    public double PetWeight { get; set; }
    public DateTime? DateWhenRescued { get; set; }
    public string PetBreedName { get; set; }    

    public PetSpecies PetSpecies { get; set; }
    public byte PetSpeciesId { get; set; }

    public PetSanctuary PetSanctuary { get; set; }
    public byte PetSanctuaryId { get; set; }    
}

Это моя сущность PetSpecies, которая состоит из FoodCost, а также моя вторая таблица

 public class PetSpecies
{
    public byte Id { get; set; }


    public string SpeciesName { get; set; }
    public double FoodCost { get; set; }
    public double HousingCost { get; set; } 
}

Это моя сущность MaintenanceCost, которая используется для хранения результата вычисления

public class MaintenanceCost
{
    public byte Id { get; set; }

    public double TotalFoodCost { get; set; }
    public double TotalHousingCost { get; set; }
    public double TotalVetBillCost { get; set; }    
}

1 Ответ

0 голосов
/ 22 октября 2018

Запрос, который вам нужен, выглядит примерно так.Он вставляет один объект, содержащий сумму всех затрат.

INSERT INTO MaintenanceCost (TotalFoodCost,TotalHousingCost,TotalVetBillCost)
Values (
(SELECT SUM(PetRescued.PetWeight * PetSpecies.FoodCost FROM PetRescued INNER JOIN PetSpecies ON PetRescued.PetSpeciesId = PetSpecies.Id)),
(SELECT SUM(PetSpecies.HousingCost FROM PetRescued INNER JOIN PetSpecies ON PetRescued.PetSpeciesId = PetSpecies.Id)),
"the amount of TotalVetBillCost"
)

Однако этот подход противоречит одному из основных правил баз данных, которое никогда не хранит данные, которые можно извлечь из других данных, хранящихся в базе данных.Кроме того, ясно, что при изменении данных в двух других таблицах эта сущность больше не будет действительной.

...