2014-10-14 4 views
-2

Я создал «отчет» с SQL * Plus, который добавляет данные из таблицы OLTP и отправляет результаты поиска нескольким пользователям.Сумма Oracle неверна

Я обнаружил проблему, хотя. Всего в таблице CATEGORIES неправильно

SQL> select * from CATEGORIES; 

DATE    P4   D1   D2   P5   P6  P7  TOTAL    
--------- ---------- ---------- ----------- ----------- ----------- -------- -----------    
14-OCT-14 200,623 2,320,173 6,807,295 17,861,027 17,386,567 803,982 45,379,667 

Это должно быть «45379307» вместо «45,379,667».

Эта таблица имеет номер (10) колонны и базовая таблица имеет число столбцов (нет точности), чтобы сохранить категории P4, D1, D2 ...

Всего в таблице CATEGORIES получается из базовый стол CATG_ACTV таким образом.

UPDATE CATEGORIES 
    SET TOTAL = (SELECT SUM(total_catg_count) FROM CATG_ACTV); 

Почему сумма пуста? Это из-за неправильного размера столбцов NUMBER? Как это исправить?

+2

Ум + 200623 2320173 + 6807295 + 17861027 + 17386567 + 803982 = ** 45379667 **. Почему вы думаете, что это должно быть 45 379 307? – LittleBobbyTables

+0

Учитывая данные из вашей таблицы категорий, они соответствуют сумме. Вы не даете достаточно информации о том, почему вы считаете, что ответ неверен, или данные, составляющие данные ваших категорий. – Kritner

ответ

5

Я знаю, что вы сделали. Когда вы выполнили арифметику, вы перенести цифры. Вы использовали 200263 вместо 200623.

200263 + 2320173 + 6807295 + 17861027 + 17386567 + 803982 = 45379307

+0

Nice catch there – LittleBobbyTables

+2

Дал вам +1 назад. У вас золотые значки и высокая репутация, поэтому это была не просто работа n00b. Я уверен, что мы все время уставились на код, пытаясь найти, почему код дает «неправильный» ответ. Синтаксис и фатальные ошибки легки по сравнению с этим. Иногда лучше удалиться, получить свежий воздух и вернуться, или взять второй комплект глаз коворца, или даже опубликовать на SO. Я уверен, что вы были похожи на omg duh, когда узнали решение. –

+0

У меня есть лихорадка и простуда ... и я не успел проскочить мимо моей постели. Я знаю, что я ошибочно набрал. Приношу свои извинения всем. Спасибо всем за ваше время. Мне жаль, что я не могу проголосовать за собственный пост ... (omg duh) ... Возвращение в постель. – Chris

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