Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
долг нарастающим итогом (хитро)
|
|||
|---|---|---|---|
|
#18+
Есть таблицы клиент 1 id1,god,mesyz,saldon,saldok saldon - долг на начало месяца saldok - -----------конец месяца сортировка по id1,god,mesyz начисление 2 id1,id2,summa льготы 3 id1,id3,summa оплата 4 id1,id4,summa В таблицах 2,3,4 может быть по несколько записей с одним id1 или не быть вовсе Надо составить запрос на обновление saldon и saldok нарастающим итогом 1) для первой записи в наборе id1 saldon всегда 0, для последующих saldon равно saldok предыдущей записи 2) saldok=saldon+sum(id2.summa)-sum(id3.summa)-sum(id4.summa) 3) при смене значения id1 для первой записи в наборе id1 saldon всегда 0 и т.д. Горю !!! Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2005, 08:28 |
|
||
|
долг нарастающим итогом (хитро)
|
|||
|---|---|---|---|
|
#18+
Если не сложно покажите на примере с данными, исходные таблички, результирующая табличка, а то не очень понятно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2005, 10:17 |
|
||
|
долг нарастающим итогом (хитро)
|
|||
|---|---|---|---|
|
#18+
Я не знаю актуально ли то что я напишу ниже, но... Я бы посоветовал Вам сделать таблицу с движениями и таблицу с типами операций. Табл1: КлиентID, ДатаОперации, ОперацияID, Приход, Расход. Табл2: ОперацияID, ОперацияОписание. Тем самым вы бы упростили себе жизнь, т.к. не надо делать одинаковых таблиц и переписывать каждый раз запрос на получение сальдо... Хотя конечно можно ваши таблицы объеденить юнионом в представление, но это вряд ли харошая идея. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2005, 10:24 |
|
||
|
долг нарастающим итогом (хитро)
|
|||
|---|---|---|---|
|
#18+
PerederiyЕсть таблицы клиент 1 id1,god,mesyz,saldon,saldok saldon - долг на начало месяца saldok - -----------конец месяца сортировка по id1,god,mesyz начисление 2 id1,id2,summa льготы 3 id1,id3,summa оплата 4 id1,id4,summa В таблицах 2,3,4 может быть по несколько записей с одним id1 или не быть вовсе Надо составить запрос на обновление saldon и saldok нарастающим итогом 1) для первой записи в наборе id1 saldon всегда 0, для последующих saldon равно saldok предыдущей записи 2) saldok=saldon+sum(id2.summa)-sum(id3.summa)-sum(id4.summa) 3) при смене значения id1 для первой записи в наборе id1 saldon всегда 0 и т.д. Горю !!! Спасибо Если дело действительно обстоит так (все таблы одинаковы, нет сложных условий типа штрафов с шифтами по времени, которые в свою очередь еще как-то зависят от времени)- воспользуйтесь предложением предыдущего оратора. (слейте таблицу в одну). Но в случае произвольной структуры попросту создается набор (юнионом по всем необходимым запросам на момент фактов возникновения/погашения задолжности/изменения условий начисления и тп. - т.е. на все моменты, важные для алгоритма расчета сальдо, причем юнион берется отсортированным по моментам этих фактов), и пробегом по этому набору в цикле FOR LOOP вы можете реализовать любой алгоритм расчета баланса с "зависящими от времени" условиями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2005, 11:12 |
|
||
|
долг нарастающим итогом (хитро)
|
|||
|---|---|---|---|
|
#18+
У меня подобный вопрос: есть таблица s_main, в которой хранятся начисления, упрощенно id, man_id, price,month,year вторая таблица (p_main) содержит платежи, если они есть - id, man_id, pay_id, cash,month,year третья таблица (saldo) содержит остатки на начало месяца - id, man_id,month,year,dolg а также таблица abon, где хранятся данные абонентов, скажем id,fio и т.д. задача в том, чтобы взять остатки на начало текущего месяца, вычислить итог на конец месяца и внести его в saldo на начало следующего месяца. Пробую хотя бы вывести требуемые результаты, примерно так: select a.id, a.fio, sum(s.price) as sprice, sum(p.cach) as pprice, sd.sda, sd.dolg+(sum(s.price)-sum(p.cach)) as new from abon as a,s_main as s left outer join p_main as p on (pay_id=p.id), saldo as sd where a.id=s.man_id and sd.man_id=a.id and s.month=9 and s.year=2005 and sd.year=2005 and sd.month=8 group by a.id,sd.sda,a.fio order by a.fio,new; Однако, в случае отсутствия оплаты на какое-либо начисление, в результате появляютсяз начения NULL, которые я никак не могу превратить в 0. Подскажите, как это сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2005, 05:34 |
|
||
|
долг нарастающим итогом (хитро)
|
|||
|---|---|---|---|
|
#18+
grfmaniakОднако, в случае отсутствия оплаты на какое-либо начисление, в результате появляютсяз начения NULL, которые я никак не могу превратить в 0. Подскажите, как это сделать. попробуй так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2005, 11:16 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33294718&tid=2006935]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 269ms |
| total: | 427ms |

| 0 / 0 |
