Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Помогите с запросом по суммам  [new]
Игорь86
Member

Откуда:
Сообщений: 163
Люди, подскажите
(может вопрос окажется нубовским, но все же...)

при выполнении запроса на суммирование определенных данных запрос выдает сумму, большую, чем при подсчете на калькуляторе.

В чем может быть проблема?
6 сен 10, 16:11    [9391481]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
Саня_zp
Member

Откуда: Запорожье-Киев №72
Сообщений: 149
Игорь86,

Покажи запрос, может ты что то намудрил с самим выражением ?
6 сен 10, 16:14    [9391514]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
тУпик
Guest
В поляъ таблицы юзайте тип NUMBER и будет вам счастье возможно :)
6 сен 10, 16:14    [9391515]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
тУпик
Guest
1. глючит калькулятор
2. неверный запрос или неверно считаете на калькуляторе
3. неверные типы данных в суммируемых полях - юзайте NUMBER
:)
6 сен 10, 16:16    [9391536]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
Игорь86
Member

Откуда:
Сообщений: 163
Саня_zp
Игорь86,

Покажи запрос, может ты что то намудрил с самим выражением ?


SELECT
.
.
.
sum(p2.monsal)
FROM
.
.
.
WHERE
.
.
.
AND p2.codrub='BOM'
AND p1.perpai between 201002 and 201007
6 сен 10, 16:18    [9391563]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
тУпик
Guest
4. возможно у вас обрезана точность в суммируемом поле.

Итого нужно
1. запрос
2. ddl таблиц с суммируемыми полями
желаетльно
3. пример данных, которые неверно суммирутся
6 сен 10, 16:18    [9391571]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
Игорь86
Member

Откуда:
Сообщений: 163
14387,52 - правильно
48890 - неправильно
10960 - неправильно
6 сен 10, 16:20    [9391587]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
тУпик
Guest
Что дает запрос:
select DATA_TYPE, DATA_LENGTH, DATA_PRECISION, DATA_SCALE from all_tab_columns where table_name='ИМЯ ВАШЕЙ ТАБЛИЦЫ' and column_name='MONSAL'
6 сен 10, 16:21    [9391598]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
Игорь86
14387,52 - правильно
48890 - неправильно
10960 - неправильно


Забыл вначале приписать "Юстас - Алексу"
6 сен 10, 16:21    [9391601]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
тУпик
Guest
Игорь86
14387,52 - правильно
48890 - неправильно
10960 - неправильно

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

короче пока непонятно :)
6 сен 10, 16:23    [9391619]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
Игорь86
Member

Откуда:
Сообщений: 163
тУпик,

NUMBER 22 13 4
6 сен 10, 16:23    [9391623]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
Игорь86
Member

Откуда:
Сообщений: 163
тУпик,

Запрос должен суммировать поля MONSAL в зависимости от PERPAI

тобишь например у одного
PERPAI - MONSAL
201002 - 100
201004 - 200
201007 - 150

а у другого
PERPAI - MONSAL
201002 - 100
201003 - 100
201004 - 200
201005 - 250
201006 - 100
201007 - 150

в итоге должен получить
450
и
900
6 сен 10, 16:26    [9391661]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
StepanovMD
Member

Откуда: Moscow
Сообщений: 452
а p1.perpai - что за тип данных?
6 сен 10, 16:28    [9391682]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
Игорь86
Member

Откуда:
Сообщений: 163
StepanovMD,

CHAR
6 сен 10, 16:30    [9391714]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
JaRo
Member

Откуда:
Сообщений: 1659
Может попробуете представить, что в Ваш монитор смотрят только Ваши глаза, и и сформулируете понятнее? Входные данные, результат Оракла, результат калькулятора..
6 сен 10, 16:32    [9391737]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
StepanovMD
Member

Откуда: Moscow
Сообщений: 452
SQL> with t as (
  2  select 201002 PERPAI,  100 MONSAL, 1 id  from dual union all
  3  select 201004 , 200, 1 id  from dual union all
  4  select 201007 , 150, 1 id  from dual union all
  5  ----
  6  select 201002 , 100, 2 id  from dual union all
  7  select 201003 , 100, 2 id  from dual union all
  8  select 201004 , 200, 2 id  from dual union all
  9  select 201005 , 250, 2 id  from dual union all
 10  select 201006 , 100, 2 id  from dual union all
 11  select 201007 , 150, 2 id  from dual )
 12  select id , sum(MONSAL) from t
 13  where perpai between 201002 and 201007
 14  group by id;
 
        ID SUM(MONSAL)
---------- -----------
         1         450
         2         900
Хы, только меня смутила отсутствие group by в приведенном запросе?
6 сен 10, 16:32    [9391751]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
тУпик
Guest
Игорь86
в итоге должен получить
450
и
900

Странно в чем же проблема не пойму, вроде ж простой запрос...
StepanovMD
а p1.perpai - что за тип данных?

+1
Ну и потом, возможно стоит пока убрать суммирование, а посмотреть,
какие именно monsal мы пытаемся суммировать-то в итоге, это впродолжение StepanovMD :)
6 сен 10, 16:33    [9391765]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
тУпик
Guest
Короче, попробуй сузить круг проблемы:
1. возьми одного сотрудника с неверной суммой
2. убери группировку с суммированием по нему и посмотри, какие суммы вообще он подбирает
6 сен 10, 16:37    [9391816]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
Игорь86
Member

Откуда:
Сообщений: 163
Попробую еще раз объяснить

Есть таблица 1, в которой есть период (perpai) например 201002
Есть таблица 2, в которой есть КОД BOM и значение (monsal)

Надо,чтобы по коду BOM с периода 201002 по период 201007 посчиталась сумма значений

пример я преводил выше
6 сен 10, 16:38    [9391832]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
StepanovMD
Member

Откуда: Moscow
Сообщений: 452
о_О - уже появилось 2 таблицы... становиться все интереснее и интереснее ...
6 сен 10, 16:39    [9391843]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
тУпик
Guest
действительно, пример хитрый, не заметил, что две таблицы юзается :)
а ты уверен, что в запросе достаточно объединить эти две таблицы просто вот так:
AND p2.codrub='BOM'
AND p1.perpai between 201002 and 201007
:)
6 сен 10, 16:41    [9391866]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
Игорь86
Member

Откуда:
Сообщений: 163
тУпик
действительно, пример хитрый, не заметил, что две таблицы юзается :)
а ты уверен, что в запросе достаточно объединить эти две таблицы просто вот так:
AND p2.codrub='BOM'
AND p1.perpai between 201002 and 201007
:)


ну у меня есть
AND p1.nudoss=p2.nudoss
6 сен 10, 16:42    [9391876]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
тУпик
Guest
Все же сделай этот запрос без групировки и сумму пока убери, чтобы
ты сам понял хотя бы какие цифры попадают в сумму.
То есть просто типа:
SELECT p1.employeid, /* ну или что там в качестве id сотрудника? )*/
p1.perpai, p2.monsal
FROM
...p1, ...p2
WHERE p1.nudoss=p2.nudoss
AND p2.codrub='BOM'
AND p1.perpai between 201002 and 201007
6 сен 10, 16:48    [9391958]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
Игорь86
Member

Откуда:
Сообщений: 163
тУпик,

это то я уже просмотрел...и посчитал...в ручную все норм...
а вот суммой почему то никак
6 сен 10, 16:49    [9391970]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом по суммам  [new]
тУпик
Guest
Тогда могу только предложить.
1. Сделать две тестовые таблички с минимумом необходимых полей (аналогичные исходным)
2. Сделать скрипты для заливки их данными
3. выложить 1) ddl этих табличкек (п.1)
2) инсерты для заливки в них данных, которые должны криво суммироваться (п.2)
3) запрос, который криво суммирует
6 сен 10, 16:59    [9392061]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить