powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / суммирование с условием
8 сообщений из 8, страница 1 из 1
суммирование с условием
    #38639898
Catty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, посоветуйте что можно сделать.
Есть триггерная функция которая вычисляет сумму лотов из таблицы lots (SUM(l.start_price)) и пишет это значение в другую таблицу(start_price). Нужно изменить запрос так, чтобы сумма лотов вычислялась с учетом типа валюты лота (l.currency). Например если рубли то ничего не меняется, если тип валюты другой, то должен умножаться на коэффициент и это всё суммируется.
Раньше выглядело так:
Код: plsql
1.
SELECT COALESCE(SUM(l.start_price), 0) FROM lots AS l WHERE l.id = ANY(lot_ids) INTO start_price;


Можно ли такое осуществить? Как правильно это оформить?
...
Рейтинг: 0 / 0
суммирование с условием
    #38639944
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SUM(l.start_price * l.currency)
...
Рейтинг: 0 / 0
суммирование с условием
    #38640839
Catty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
l.currency это id валюты, которое связывается с таблицей курсов валют. Мне нужно чтобы если валюта не рубли то умножалось на курс, если валюта то ничего. И потом всё складывалось все значения.
На php было бы примерно так:
Код: php
1.
2.
3.
4.
5.
if ($currency != 'RUB') {
$sum_lots += $start_price_lot*$rate
} else {
$sum_lots +=$start_price_lot
}


на pgsql не знаю как так написать
...
Рейтинг: 0 / 0
суммирование с условием
    #38640843
Catty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Catty, если валюта не рубли то ничего не умножается то есть
...
Рейтинг: 0 / 0
суммирование с условием
    #38640861
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FROM lots AS l LEFT JOIN currency AS c ON (l.currency=c.id)

SUM(l.start_price * coalesce(c.ratio, 1))
...
Рейтинг: 0 / 0
суммирование с условием
    #38640970
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спорим там в таблцие курсов еще и даты и есть, и курсы надо на дату брать, и не просто на ближайшую не большую.
...
Рейтинг: 0 / 0
суммирование с условием
    #38640974
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cattyl.currency это id валюты, которое связывается с таблицей курсов валют. Мне нужно чтобы если валюта не рубли то умножалось на курс, если валюта то ничего. И потом всё складывалось все значения.
На php было бы примерно так:
Код: php
1.
2.
3.
4.
5.
if ($currency != 'RUB') {
$sum_lots += $start_price_lot*$rate
} else {
$sum_lots +=$start_price_lot
}


на pgsql не знаю как так написать
SUM(l.start_price * case when l.currency = 'RUB' then 1 else rate end)
...
Рейтинг: 0 / 0
суммирование с условием
    #38641128
Catty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan Durakспорим там в таблцие курсов еще и даты и есть, и курсы надо на дату брать, и не просто на ближайшую не большую.
Да точно есть
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / суммирование с условием
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]