Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2011, 15:45   #1
lyb4eg
Пользователь
 
Регистрация: 06.08.2011
Сообщений: 76
По умолчанию Сводка к одному формату

Гружу з БД инфо, мне необходимо посчитать общую суму во всех строках, но там все непросто, так как она в разной валюте:
39528 EUR
36000 UAH
440 UAH
1573440 USD
1415328 EUR
17657 UAH
96000 UAH
300000 UAH
1146990 EUR

вот в таком виде я могу выгрузить, но необходимо что бы сразу переводило все в EUR, так как сума общая должна быть ....
lyb4eg вне форума Ответить с цитированием
Старый 06.12.2011, 15:53   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Курс есть? Если нет - проблему не решить. Или пользоваться какими то левыми курсами
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.12.2011, 15:55   #3
lyb4eg
Пользователь
 
Регистрация: 06.08.2011
Сообщений: 76
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Курс есть? Если нет - проблему не решить. Или пользоваться какими то левыми курсами
Да, есть! Подскажите пожалуйста как должно выглядеть, я курс подставлю...
lyb4eg вне форума Ответить с цитированием
Старый 06.12.2011, 15:58   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Приведите пример нескольких записей с названиями и типами полей, укажите СУБД. Тогда и будет разговор
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.12.2011, 16:08   #5
lyb4eg
Пользователь
 
Регистрация: 06.08.2011
Сообщений: 76
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Приведите пример нескольких записей с названиями и типами полей, укажите СУБД. Тогда и будет разговор
СУБД Oracle
Назва полей unit_price (сума - тип NUMBER), CURRENCY_CODE (валюта - VARCHAR2)
Записи:
66720 UAH
478 UAH
39528 EUR
36000 UAH
440 UAH
1573440 USD
1415328 EUR
17657 UAH
96000 UAH
300000 UAH
1146990 EUR

* Эти записи формируются уже запросом, потому как тянуться из других таблиц, со своими условиями, вот скрипт (хотя он врят ли кому то поможет) -
SELECT ROUND(SUM(prl.quantity*prl.unit_pri ce*decode(prl.TAX_CODE_ID,null,1,'' ,1,1+ATC.tax_rate/100))) REQ_SUM,
NVL(PRL.CURRENCY_CODE, GSB.CURRENCY_CODE) CURR
FROM
PO_REQUISITION_LINES_ALL PRL,
PO_REQ_DISTRIBUTIONS_ALL PRD,
PO_REQUISITION_HEADERS_ALL PRH,
gl_code_combinations glc,
GL_SETS_OF_BOOKS GSB,
FINANCIALS_SYSTEM_PARAMS_ALL FSP,
mtl_categories_tl ctl,
FND_FLEX_VALUE_SETS vs,
FND_FLEX_VALUES v,
FND_FLEX_VALUES_TL tl,
AP_TAX_CODES_ALL ATC

WHERE 1=1
AND PRH.ORG_ID=322
AND TRUNC(PRH.CREATION_DATE) BETWEEN TO_DATE('01.11.2009','DD.MM.YYYY') AND sysdate
AND PRH.AUTHORIZATION_STATUS = ('APPROVED')
AND PRH.REQUISITION_HEADER_ID=PRL.REQUI SITION_HEADER_ID
AND PRL.REQUISITION_LINE_ID=PRD.REQUISI TION_LINE_ID
AND PRD.CODE_COMBINATION_ID=GLC.CODE_CO MBINATION_ID
AND FSP.ORG_ID = PRL.ORG_ID
AND FSP.SET_OF_BOOKS_ID = GSB.SET_OF_BOOKS_ID
AND prl.category_id=ctl.category_id
AND ctl.language='RU'
AND glc.segment2=v.FLEX_VALUE
AND v.flex_value_set_id = vs.flex_value_set_id
AND vs.flex_value_set_name = 'RBAVAL_COSTCENTER'
AND v.FLEX_VALUE_ID=tl.FLEX_VALUE_ID
AND tl.language='RU'
AND PRL.TAX_CODE_ID = ATC.TAX_ID(+)
GROUP BY SUBSTR(tl.description, instr(tl.description,'.')+1,255),
PRH.SEGMENT1,
GLC.SEGMENT2,
GLC.SEGMENT3,
NVL(PRL.CURRENCY_CODE, GSB.CURRENCY_CODE),
ctl.description
ORDER BY PRH.SEGMENT1
lyb4eg вне форума Ответить с цитированием
Старый 06.12.2011, 16:33   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Вы общую сумму хотите запросом получить? В терминах стандарта SQL, при условии что для каждой валюты курс фиксированный можно так попробовать
Код:
SELECT SUM((CASE WHEN CURRENCY_CODE='UAH' THEN 0.095
                 WHEN CURRENCY_CODE='USD' THEN 0.88
                 ELSE 1 END)*unit_price) AS SummEur
  FROM Tablica
Для Oracle по его синтаксису преобразуйте
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.12.2011, 16:41   #7
lyb4eg
Пользователь
 
Регистрация: 06.08.2011
Сообщений: 76
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Вы общую сумму хотите запросом получить? В терминах стандарта SQL, при условии что для каждой валюты курс фиксированный можно так попробовать
Код:
SELECT SUM((CASE WHEN CURRENCY_CODE='UAH' THEN 0.095
                 WHEN CURRENCY_CODE='USD' THEN 0.88
                 ELSE 1 END)*unit_price) AS SummEur
  FROM Tablica
Для Oracle по его синтаксису преобразуйте
Спасибо огромное !!! (буду иметь ввиду)
Вот только руководитель уже по другому хочет... "Люблю" свою работу ...
lyb4eg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сводка заказов товаров с разными ценами из теущего прайса AnReykfi Microsoft Office Access 1 03.12.2010 19:43
суммирование по формату trivsi Microsoft Office Excel 1 06.08.2010 22:33
просумировать по формату StasSv Microsoft Office Excel 1 16.12.2008 09:59
Как получить доступ к Свойства файла -> Сводка? Ruzzz Win Api 1 18.10.2008 18:39
Сводка jpg-файла eks-s Мультимедиа в Delphi 3 30.08.2008 17:33