2015-03-02 3 views
0

в предыдущем вопросе Мне удалось получить сумму из базы данных MS Access, но числа, которые я пытаюсь добавить, являются положительными и отрицательными.Получить сумму из базы данных доступа MS

Как добавить положительные и отрицательные числа вместе.

Код ниже возвращает сумму, но не учитывает отрицательные числа, которые он считает положительными, может ли это быть исправлено?

com = new OleDbCommand("SELECT sum([Points]) FROM FlightPoints WHERE [Person] =?", 
    Program.DB_CONNECTION); 

com.Parameters.Add(new OleDbParameter("", c.ID)); 

dr = com.ExecuteReader(); 

if (dr.Read()) 
{ 
    try 
    { 
     string[] subitems = new string[2]; // set number of items in the list 
     subitems[0] = c.Rank.String + " " + c.FirstName + " " + c.Surname; 
     subitems[1] = Convert.ToInt32(dr.GetDouble(0)).ToString(); 

     ListViewItem listItem = new ListViewItem(subitems); 
     CadetPointlistView.Items.Add(listItem); // add all the subitems to the table 
    } 
    catch 
    { 
    } 
} 
+2

«Код, приведенный ниже, возвращает сумму, но не учитывает отрицательные числа, которые он считает положительными» - это не выглядит правильным. Пожалуйста, разместите некоторые данные из своей таблицы и результаты, которые ваш запрос дает вам. – Dai

+0

@ Дай. Я нашел ошибку по-моему, это был не код выше, это мой оператор insert, который не вставлял отрицательные числа. – Ryanagray

ответ

0

Два варианта - если вы можете изменить код, заменить ссылки на SUM(VALUE) с SUM(ABS(VALUE)); else, создайте запрос (SQL VIEW), который возвращает исходную таблицу, кроме столбца значения, и вычислит абсолютное значение с помощью функции ABS() (SqlFiddle).

Затем вы можете использовать исходный код с новым запросом для вычисления результата. Представление не может использоваться для обновления столбца значения по мере его вычисления. Вместо этого обновите исходную таблицу.

Смежные вопросы