Разделение таблиц в C # и SQL - PullRequest
0 голосов
/ 05 июля 2019

У меня есть база данных, которую я уже реализовал в своем веб-API.Я работаю на летней работе, и мне приходится использовать C #, который я никогда раньше не использовал.Я не лучший программист, но я знаю, как использовать Java.

Мне нужно разделить 4 столбца каждый.В моей базе данных есть 4 таблицы:

  • Name (для названия станции)
  • Date (на дату, когда компания измерила данные)
  • FeedbackType (это тип обратной связи. Я получил 4 типа: очень отрицательный, отрицательный, положительный и очень положительный)
  • Count (он описывает, сколько людей проголосовало за этот конкретный тип обратной связи).

Каждый Station имеет столбец для каждого FeedbackType, и моя проблема заключается в суммировании отзывов.Very Negative дает 0 баллов, Negative дает 1 балл, Positive дает 2 балла и Very Positive дает 3 балла.Я должен умножить «Count» на заданные баллы.

Внизу вы видите немного моего файла json

{
        "Name": "ASFINAG - Parkplatz Radin Nord",
        "Date": "01.07.2019 00:00:00",
        "FeedbackType": "Very Negative",
        "Count": 3
    },
    {
        "Name": "ASFINAG - Parkplatz Radin Nord",
        "Date": "01.07.2019 00:00:00",
        "FeedbackType": "Negative",
        "Count": 1
    },
    {
        "Name": "ASFINAG - Parkplatz Radin Nord",
        "Date": "01.07.2019 00:00:00",
        "FeedbackType": "Positive",
        "Count": 9
    },
    {
        "Name": "ASFINAG - Parkplatz Radin Nord",
        "Date": "01.07.2019 00:00:00",
        "FeedbackType": "Very Positive",
        "Count": 7
    },

Этот код - всего лишь одна станция, чтобы показать вам примериз того, что я должен сделать

Я надеюсь, что это не так сложно понять, и я действительно надеюсь, что вы можете мне помочь Спасибо.

1 Ответ

0 голосов
/ 05 июля 2019

Для типа обратной связи по его стоимости и общей сумме на компанию:

Нам нужен способ хранить тип обратной связи и его соответствующее значение. Здесь мы можем использовать простой массив, так как индекс будет значением, но мы могли бы использовать Словарь , если значение изменится в будущем

var feedbackValue = new string[] { "Very Negative", "Negative", "Positive", "Very Positive" };

Нахождение значения мультипликатора для заданной обратной связи будет:

Array.IndexOf(feedbackValue, x.FeedbackType)       

Тогда мы группируем по названию компании.
И Сумма Количество и значение обратной связи.

data.GroupBy(x => x.Name)
    .Select(g => new
    {
        Name = g.Key,
        Total = g.Sum(x =>
             x.Count * Array.IndexOf(feedbackValue, x.FeedbackType)
            )
    });

Результат:

 { Name = Foo, Total = 40 },
 { Name = Bar, Total = 22 }

LiveDemo

...