Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PowerBuilder Новый топик    Ответить
 Computed Field  [new]
ForestGump
Member

Откуда: Украина, Харьков
Сообщений: 12
Здравствуйте! У меня такая проблема: у меня есть несколько таблиц, в каждой есть столбец "количество". Мне нужно из всех имеющихся таблиц посчитать общую сумму этих столбцов. Когда я делаю это с помощью Computed Field, то он мне выводит колосальную сумму. Считает как-то некоректно. Можно ли в PowerBuilder решить както эту проблему корректно? Заранее спасибо.
26 мар 08, 18:08    [5463728]     Ответить | Цитировать Сообщить модератору
 Re: Computed Field  [new]
sPaul
Member

Откуда: Moscow
Сообщений: 387
можно увидеть source этого датавиндо?
26 мар 08, 18:17    [5463781]     Ответить | Цитировать Сообщить модератору
 Re: Computed Field  [new]
Локшин Марк
Member

Откуда: Воронеж
Сообщений: 3154
ForestGump
Здравствуйте! У меня такая проблема: у меня есть несколько таблиц, в каждой есть столбец "количество". Мне нужно из всех имеющихся таблиц посчитать общую сумму этих столбцов. Когда я делаю это с помощью Computed Field, то он мне выводит колосальную сумму. Считает как-то некоректно. Можно ли в PowerBuilder решить както эту проблему корректно? Заранее спасибо.

Может быть нужно наложить формат/округлить результат?
26 мар 08, 18:23    [5463809]     Ответить | Цитировать Сообщить модератору
 Re: Computed Field  [new]
Mykola
Member

Откуда:
Сообщений: 615
select sum(t_tmp.nCountTable) as nCountAll
from
(
select sum("количество") as nCountTable from table_1 <where ...>
union all
select sum("количество") as nCountTable from table_2 <where ...>
.......
) as t_tmp
26 мар 08, 18:25    [5463828]     Ответить | Цитировать Сообщить модератору
 Re: Computed Field  [new]
ForestGump
Member

Откуда: Украина, Харьков
Сообщений: 12
Локшин Марк
Может быть нужно наложить формат/округлить результат?


Нет, это я пробовал. Фильтр тоже ставил. Дело в том, что когда добавляю одну таблицу и выбираю нужную мне колонку в пеинтере, то вычисляемое поле посчитает правильно. Если я добавлю еще одну колонку с другой добавленной таблицы, то сумма выходит странная(к примеру если сумма двух столбцов должна быть 2 , то поле показывает 4 и так далее) Чудеса какие-то :(
27 мар 08, 10:47    [5465802]     Ответить | Цитировать Сообщить модератору
 Re: Computed Field  [new]
Ikar
Member

Откуда: Москва
Сообщений: 928
ForestGump
...
Дело в том, что когда добавляю одну таблицу и выбираю нужную мне колонку в пеинтере, то вычисляемое поле посчитает правильно. Если я добавлю еще одну колонку с другой добавленной таблицы, то сумма выходит странная(к примеру если сумма двух столбцов должна быть 2 , то поле показывает 4 и так далее) Чудеса какие-то :(
Хм... А уточните, пожалуйста, как Вы связываете таблицы в запросе?
27 мар 08, 11:41    [5466361]     Ответить | Цитировать Сообщить модератору
 Re: Computed Field  [new]
Mykola
Member

Откуда:
Сообщений: 615
проверте количество записей которое возвращает dw c одной таблицей а потом с двумя.
27 мар 08, 11:59    [5466557]     Ответить | Цитировать Сообщить модератору
 Re: Computed Field  [new]
ForestGump
Member

Откуда: Украина, Харьков
Сообщений: 12
Ikar
Хм... А уточните, пожалуйста, как Вы связываете таблицы в запросе?


В пеинтере связь между таблицами "<>" , так как ключевая колонка "Номер" разная для всех таблиц. Это порядковые номера для строк таблиц, которые потом будут отображаться в отчете. От себя добавлю, что с PowerBuilder'ом работаю сравнительно недавно и могу допустить какую нибудь элементарную ошибку. Мне он понравился за простоту. Застрял вот на этом :(
27 мар 08, 12:34    [5466860]     Ответить | Цитировать Сообщить модератору
 Re: Computed Field  [new]
с новым годом
Guest
у вас sql запрос неправильный.
27 мар 08, 12:40    [5466911]     Ответить | Цитировать Сообщить модератору
 Re: Computed Field  [new]
Локшин Марк
Member

Откуда: Воронеж
Сообщений: 3154
ForestGump
Ikar
Хм... А уточните, пожалуйста, как Вы связываете таблицы в запросе?


В пеинтере связь между таблицами "<>" , так как ключевая колонка "Номер" разная для всех таблиц. Это порядковые номера для строк таблиц, которые потом будут отображаться в отчете. От себя добавлю, что с PowerBuilder'ом работаю сравнительно недавно и могу допустить какую нибудь элементарную ошибку. Мне он понравился за простоту. Застрял вот на этом :(

Лучше выучить хоть немного SQL и писать запросы текстом, чем возиться с визуальным построением запросов.
27 мар 08, 14:22    [5467781]     Ответить | Цитировать Сообщить модератору
 Re: Computed Field  [new]
Ikar
Member

Откуда: Москва
Сообщений: 928
Локшин Марк
...
Лучше выучить хоть немного SQL и писать запросы текстом, чем возиться с визуальным построением запросов.
+1
27 мар 08, 16:32    [5468936]     Ответить | Цитировать Сообщить модератору
 Re: Computed Field  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6610
Если в DW есть группы c итогами по ним (compute_1=sum(aaa for #1) ) и по этим итогам есть общий итог (compute_2=sum(compute_1 for all), то сумма в каждой группе будет умножена на кол-во записей в группе при подсчете общего итога.
27 мар 08, 16:35    [5468948]     Ответить | Цитировать Сообщить модератору
 Re: Computed Field  [new]
ForestGump
Member

Откуда: Украина, Харьков
Сообщений: 12
Спасибо всем кто откликнулся! Поколдую еще с запросами...
27 мар 08, 17:06    [5469255]     Ответить | Цитировать Сообщить модератору
 Re: Computed Field  [new]
ForestGump
Member

Откуда: Украина, Харьков
Сообщений: 12
Поколдовал я с запросами но увы все осталось по-прежнему...
Ну вот к примеру:

SELECT sum(столбец1 + столбец2 )
FROM таблица1, таблица2
WHERE столбец1 > 0 AND столбец2 > 0
GROUP BY столбец1, столбец2;

Сумма всего этого будет 12, вместо положеных 5. Подскажите пожалуйста, что я делаю неправильно?
7 апр 08, 14:45    [5512605]     Ответить | Цитировать Сообщить модератору
 Re: Computed Field  [new]
spas2001
Member

Откуда: Тамбов--->Москва-->Тамбов-->Москва-->Тамбов
Сообщений: 2010
Связь между таблицами отсутствует
sql использует дискретную математику, так что либо в теории либо на практике принципы надо знать
таблица1.какая-то колонка1 = таблица2.какая-то колонка2
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
7 апр 08, 14:49    [5512654]     Ответить | Цитировать Сообщить модератору
 Re: Computed Field  [new]
ForestGump
Member

Откуда: Украина, Харьков
Сообщений: 12
Извините, это моя ошибка - поспешил :). Связь у меня "<>" и результат тот же. Я вот думаю: я работаю в PB 9, и быть может здесь нужен другой подход, нежели в PB 6. Скажите между ними есть существенная разница?
7 апр 08, 15:23    [5512994]     Ответить | Цитировать Сообщить модератору
 Re: Computed Field  [new]
spas2001
Member

Откуда: Тамбов--->Москва-->Тамбов-->Москва-->Тамбов
Сообщений: 2010
SQL он и в африке SQL
Какое нафиг неравно
У тебя перемножаются две таблицы, что ты еще хочешь получить
RTFM!!!
STFW!!!
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
7 апр 08, 15:26    [5513029]     Ответить | Цитировать Сообщить модератору
 Re: Computed Field  [new]
ForestGump
Member

Откуда: Украина, Харьков
Сообщений: 12
Ну вобщето я сумму пытаюсь посчитать.... Поменял связь, результат тотже... вместо 5 получаеться 12. Бред какойто
7 апр 08, 15:46    [5513200]     Ответить | Цитировать Сообщить модератору
 Re: Computed Field  [new]
Yurk0
Member

Откуда: Украина
Сообщений: 168
так ведь Mykola дал тебе правильный ответ !
Mykola
select sum(t_tmp.nCountTable) as nCountAll
from
(
select sum("количество") as nCountTable from table_1 <where ...>
union all
select sum("количество") as nCountTable from table_2 <where ...>
.......
) as t_tmp

вместо
SELECT sum(столбец1 + столбец2 )
FROM таблица1, таблица2
WHERE столбец1 > 0 AND столбец2 > 0
GROUP BY столбец1, столбец2;
напиши
select sum(t_tmp.nCountTable) as nCountAll
from(
select sum("столбец1") as nCountTable from таблица1 where  "столбец1" > 0
union 
select sum("столбец2") as nCountTable from таблица2 where "столбец2" > 0
) as t_tmp
7 апр 08, 16:09    [5513414]     Ответить | Цитировать Сообщить модератору
 Re: Computed Field  [new]
ForestGump
Member

Откуда: Украина, Харьков
Сообщений: 12
Yurk0
так ведь Mykola дал тебе правильный ответ !


Действительно, посчитало правильно! :) Ребят спасибо вам обоим! Буду дальше разбираться...
7 апр 08, 16:22    [5513520]     Ответить | Цитировать Сообщить модератору
Все форумы / PowerBuilder Ответить