Ответить

 

Опции темы
Старый 18.11.2010, 22:03   #1
raus
Модератор ФССП
 
Аватар для raus
 
Регистрация: 16.01.2009
Адрес: Россия / /
Сообщений: 3,373
Благодарности: 153
Поблагодарили 548 раз(а) в 528 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

Понадобилось в квитанции указать общую сумму к оплате, т.е. Сплюсовать долг, расходы, сбор и сминусовать уже уплаченную сумму.
Никак не могу сообразить, как это правильно сделать. Получился вот такой код:

Код:
select  max ( 
case when ip.sum_ is null then 0 else ip.sum_ end + 
case when ip.sum_is is null then 0 else sum_is end + 
(case when document.sum_total  is not null and document.kod = 7 then document.sum_total else 0  end) 
- coalesce (IP.MAIN_DOLG, 0) 
) as DolgSborRashod 
from ip 
join document on ip.pk = document.fk 
where ip.pk = :pkip
Но тут бесполезно нагружается сервер, возможно в некоторых случаях и возвратит не ту сумму (?). поможите ПЛЗ как то по-нормальному это написать....
__________________
Yo Way Yo, Home Va-Ray,
Yo Ay-Rah, Jerhume Brunnen-G
 
В Минюст Цитата Спасибо
Старый 19.11.2010, 10:18   #2
belov-evgenii
Модератор раздела
 
Аватар для belov-evgenii
 
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45 раз(а) в 45 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

Код:
select  coalesce(ip.sum_, 0) + 
		coalesce(ip.sum_is, 0) + 
		(select sum(document.sum_total) 
		 from document 
		 where ip.pk = document.fk 
			and document.kod = 7) - 
		coalesce(IP.MAIN_DOLG, 0) 
from ip 
where ip.pk = :pkip
 
В Минюст Цитата Спасибо
Старый 20.11.2010, 09:51   #3
raus
Модератор ФССП
 
Аватар для raus
 
Регистрация: 16.01.2009
Адрес: Россия / /
Сообщений: 3,373
Благодарности: 153
Поблагодарили 548 раз(а) в 528 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

вот оно чё... Вложенный подзапрос - как то всегда у меня сними проблемы.... Надо подучиться
__________________
Yo Way Yo, Home Va-Ray,
Yo Ay-Rah, Jerhume Brunnen-G
 
В Минюст Цитата Спасибо
Старый 22.11.2010, 09:14   #4
raus
Модератор ФССП
 
Аватар для raus
 
Регистрация: 16.01.2009
Адрес: Россия / /
Сообщений: 3,373
Благодарности: 153
Поблагодарили 548 раз(а) в 528 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

хм.... тем не менее возвращает null - где собака порылась?
__________________
Yo Way Yo, Home Va-Ray,
Yo Ay-Rah, Jerhume Brunnen-G
 
В Минюст Цитата Спасибо
Старый 22.11.2010, 09:33   #5
raus
Модератор ФССП
 
Аватар для raus
 
Регистрация: 16.01.2009
Адрес: Россия / /
Сообщений: 3,373
Благодарности: 153
Поблагодарили 548 раз(а) в 528 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

------------------------
скорее всего если нет документа с кодом 7
__________________
Yo Way Yo, Home Va-Ray,
Yo Ay-Rah, Jerhume Brunnen-G
 
В Минюст Цитата Спасибо
Старый 22.11.2010, 09:57   #6
belov-evgenii
Модератор раздела
 
Аватар для belov-evgenii
 
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45 раз(а) в 45 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

Код:
select  coalesce(ip.sum_, 0) + 
		coalesce(ip.sum_is, 0) + 
		coalesce((select sum(document.sum_total) 
		 from document 
		 where ip.pk = document.fk 
			and document.kod = 7), 0) - 
		coalesce(IP.MAIN_DOLG, 0) 
from ip 
where ip.pk = :pkip
 
В Минюст Цитата Спасибо


Быстрый ответ

Сообщение:
Опции


Ваши права в разделе