Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.12.01;
Скачать: CL | DM;

Вниз

Переписать расчеты с клиента на сервер   Найти похожие ветки 

 
[ВладОшин] ©   (2013-06-11 12:23) [0]

User_1 воспользовался услугами 1 и 2 на сумму 100 и 50 рублей соответственно
User_2 воспользовался услугами 1 на сумму 100 рублей

-- drop table OW_TMP_TMP_charge
create table OW_TMP_TMP_charge as
select * from (
             select 100 SUMM, 1 SVC, 1 U_ID from dual union all
             select 50 SUMM, 2 SVC, 1 U_ID from dual union all
             select 100 SUMM, 1 SVC, 2 U_ID from dual )
-- select * from OW_TMP_TMP_charge


User_1 заплатил 120 рублей
User_2 заплатил 90  
-- drop table OW_TMP_TMP_pay
create table OW_TMP_TMP_pay as
select * from (
             select 120 SUMM, 1 U_ID from dual union all
             select 90 SUMM,  2 U_ID from dual )
-- select * from OW_TMP_TMP_pay


User_1 должен: всего 150 рублей
из них доля долга по первой услуге 2/3 и по второй 1/3
Заплатил он 120.
Значит, 80 он заплатил за первую услугу и 40 за вторую
т.е. он должен теперь 20 за первую и 10 за вторую.

User_2 должен 10 рублей за услугу 1, он больше не воспользовался никакой, 100 - 90 = 10.

Не соображу как запросом получить долги по услугам.
Подскажете?


 
[ВладОшин] ©   (2013-06-11 12:32) [1]

упс.. не сюда


 
[ВладОшин] ©   (2013-06-11 12:54) [2]

да, сам решил - но вообще не нравится :)

select BB.*, C3.SUMM - BB.EQ from (
select B.*, P.SUMM * B.PERCEN EQ
 from (select A.ALL_SUM, C.SUMM / A.ALL_SUM PERCEN, C.U_ID, C.SVC
         from OW_TMP_TMP_charge C
         join (select sum(C.Summ) ALL_SUM, C.U_ID
                from OW_TMP_TMP_charge C
               group by C.U_ID
               ) A on A.U_ID = C.U_ID
        ) B
          join OW_TMP_TMP_PAY P on P.U_ID = B.U_ID
) BB
 join OW_TMP_TMP_charge C3 on C3.SVC = BB.SVC and C3.U_ID = BB.U_ID



Страницы: 1 вся ветка

Текущий архив: 2013.12.01;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.006 c
15-1370938997
[ВладОшин]
2013-06-11 12:23
2013.12.01
Переписать расчеты с клиента на сервер


15-1370617769
Hadroran
2013-06-07 19:09
2013.12.01
Построение запроса


15-1370338471
Els
2013-06-04 13:34
2013.12.01
Какой лучше антивирус выбрать


15-1371052001
О-Сознание
2013-06-12 19:46
2013.12.01
Флаг в LongInt.


3-1294580093
adigozelov
2011-01-09 16:34
2013.12.01
Unicode v Ehlib