Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.12.01;
Скачать: [xml.tar.bz2];

Вниз

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

 
[ВладОшин] ©   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.002 c
15-1371056583
ПЛОВ
2013-06-12 21:03
2013.12.01
Как придумываются прогнозы погоды?


2-1361265627
kelpie1988
2013-02-19 13:20
2013.12.01
Как создать dll c вложенными функциями?


1-1318486819
karat_1
2011-10-13 10:20
2013.12.01
Как бы запустить функцию, название которой хранится в строке?


2-1361099341
alexdn
2013-02-17 15:09
2013.12.01
Веб браузер на форме


15-1371109866
картман
2013-06-13 11:51
2013.12.01
адвокаты, нотариусы и подобные





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский