powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Учет долгов
44 сообщений из 44, показаны все 2 страниц
Учет долгов
    #39407148
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день всем. Возникла такая ситуация. Хочу решить вопрос по 3 участниками, то есть
1. есть участники А В С. Они между собой дают и берут деньги, и в итоге надо получить отчет о задолженности всех участников

Создал таблицы
1 Uchastniki
2 Memo
3 SubMemo

Пробовал через запрос но не получил результата
...
Рейтинг: 0 / 0
Учет долгов
    #39407152
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот база, для отчета первого участника должно получится в итоге так
А
......................
А......В...200
С......А...200
В......А...100
А......С...1000
но получается другое смотрите отчет
Может я не туда копаю?
Помогите плиз
...
Рейтинг: 0 / 0
Учет долгов
    #39407178
Minatavr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не туда.
Нужна обычная схема дебет-кредит.
На каждого участника нужно создать по две колонки: ПОТРАТИЛ, ПОТРЕБИЛ.

Например, если втроем посидели в ресторане на 1500р, то появляется запись (одной строкой):

1-й участник ПОТРАТИЛ 900р, ПОТРЕБИЛ 500р
2-й участник ПОТРАТИЛ 600р, ПОТРЕБИЛ 500р
3-й участник ПОТРАТИЛ 0р, ПОТРЕБИЛ 500р
В сумме: сколько потратили на троих, столько же и потребили на троих. Сразу видно: кто должен и кому должны.
...
Рейтинг: 0 / 0
Учет долгов
    #39407188
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поменял memo и submemo так
1 в memo добавил uchastnik
2 в submemo поля poluchil и otdal сделал денежный формат и добавил uchastnik.
И тоже никакполучаю след картину в отчете
А....
А...В...200
С...А...1000
А остальные по участнику А не появляются
...
Рейтинг: 0 / 0
Учет долгов
    #39407191
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот изменения
...
Рейтинг: 0 / 0
Учет долгов
    #39407193
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это как бы займы между участниками. Один дал другому, второой вернул или отдал немножко третьему и т.д.. В итоге нужен отчет кто перед кем в долгу, и кому кто сколько должен.
...
Рейтинг: 0 / 0
Учет долгов
    #39407205
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскольку система замкнутая и беспроцентная,
достаточно посмотреть остатки по счетам участников.
...
Рейтинг: 0 / 0
Учет долгов
    #39407207
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так предлагаете
Дебет...Уч...Кредит...Уч...Сумма
Получ...А.....отдал....В...100

И отчет сделать по получению или выдаче ?????
...
Рейтинг: 0 / 0
Учет долгов
    #39407210
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну да ладно остатки понимаю а как в отчете указать что например для участника А кому он дал взаймы, у кого получил.
...
Рейтинг: 0 / 0
Учет долгов
    #39407265
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так надо получить но я так понимаю не получится
...
Рейтинг: 0 / 0
Учет долгов
    #39407267
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
упс для "В" в поле получил 2100USD
...
Рейтинг: 0 / 0
Учет долгов
    #39407281
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот на еxcel-е это дело пожно получить через SUMPRODUCT а как отчет реализовать в ACCESS
...
Рейтинг: 0 / 0
Учет долгов
    #39407305
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чуть поправим...
...
Рейтинг: 0 / 0
Учет долгов
    #39407312
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предположу, что хотелось иметь такой запрос
Код: sql
1.
2.
3.
4.
5.
SELECT Memo.uchastnik, SubMemo.uchastnik as Subuchastnik, 
  Sum(SubMemo.poluchil) AS [Sum-poluchil], Sum(SubMemo.otdal) AS [Sum-otdal], 
  nz([Sum-poluchil],0)-nz([Sum-otdal],0) as ostatok
FROM SubMemo INNER JOIN [Memo] ON SubMemo.ID_memo=Memo.ID_memo
GROUP BY Memo.uchastnik, SubMemo.uchastnik
...
Рейтинг: 0 / 0
Учет долгов
    #39407367
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mds_world Ваш запрос почти к решению но посмотрите что должно было бы получится если записать на бумажке действия из формы Memo

1..2..1000..100
1..3..3000..2000
2..1..500....0
2..3..0.......300
3..2..1000..0

Aпо Вашему запросы получается так
...
Рейтинг: 0 / 0
Учет долгов
    #39407370
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А это запрос alecko вроде все ОК, но суммируя по бумажке должно получится так
Участник...Получил...Отдал
1..............4000.........500
2..............500...........1400
3..............1000.........2300
...
Рейтинг: 0 / 0
Учет долгов
    #39407372
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я наверно схему не так построил поэтому путаница получается Может поле УЧАСТНИК на главной переместить в ПОДЧИНЕННУЮ ФОРМУ
...
Рейтинг: 0 / 0
Учет долгов
    #39407377
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или расчленить SubMemo на Получил и Отдал
На практике в Мемориальных ордерах пишется так

Дебет...КлиентПоДебету...Кредит...КлиентПоКредиту......Сумма....Наименование сделки
...
Рейтинг: 0 / 0
Учет долгов
    #39407382
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При таком запросе
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT U1 AS Участник1, U2 AS Участник2, Sum(U2In) AS [Получил от Участника1], Sum(U2Out) AS [Отдал Участнику1], Sum(U2In)-Sum(U2Out) AS [Должен Участнику1]
FROM [SELECT SubMemo.ID_memo, Memo.uchastnik AS U1, SubMemo.uchastnik AS U2, SubMemo.poluchil AS U2In, SubMemo.otdal AS U2Out
FROM [Memo] INNER JOIN SubMemo ON Memo.ID_memo = SubMemo.ID_memo
UNION ALL
SELECT SubMemo.ID_memo, SubMemo.uchastnik AS U1, Memo.uchastnik AS U2, SubMemo.otdal AS U2In, SubMemo.poluchil AS U2Out
FROM [Memo] INNER JOIN SubMemo ON Memo.ID_memo = SubMemo.ID_memo]. AS [%$##@_Alias]
GROUP BY U1, U2;

для данных таблиц получается такой результат - см. картинку.
Это правильно для этих данных?
...
Рейтинг: 0 / 0
Учет долгов
    #39407386
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser Artur, в таблице Memo Вы помойму напутали немножко (участника "С" там не было), ну и я тож , я сделал ещё уточнение кто и кому должен/получил - если не надо доптаблицу и крайний столбец в запросе просто удалите.
...
Рейтинг: 0 / 0
Учет долгов
    #39407450
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЭто правильно для этих данных?
Правильно но пишет
...
Рейтинг: 0 / 0
Учет долгов
    #39407451
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser Artur,

У меня такого не пишет, ведь запрос выполнился, результаты показаны.
Могу сбросить БД с запросом и отчетом.
Нужно?
...
Рейтинг: 0 / 0
Учет долгов
    #39407452
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JOIN SubMemo ON Memo.ID_memo = SubMemo.ID_memo]. AS [%$##@_Alias] это что за формат
...
Рейтинг: 0 / 0
Учет долгов
    #39407453
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если можно сбросьте БД
...
Рейтинг: 0 / 0
Учет долгов
    #39407455
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser Artur,

А, это конструктор запросов влез и искорежил запрос при сохранении.
Сейчас дам вариант без искажений.
Вот он.
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT U1 AS Участник1, U2 AS Участник2, Sum(U2In) AS [Получил от Участника1], Sum(U2Out) AS [Отдал Участнику1], Sum(U2In)-Sum(U2Out) AS [Должен Участнику1]
FROM (SELECT SubMemo.ID_memo, Memo.uchastnik AS U1, SubMemo.uchastnik AS U2, SubMemo.poluchil AS U2In, SubMemo.otdal AS U2Out
FROM [Memo] INNER JOIN SubMemo ON Memo.ID_memo = SubMemo.ID_memo
UNION ALL
SELECT SubMemo.ID_memo, SubMemo.uchastnik AS U1, Memo.uchastnik AS U2, SubMemo.otdal AS U2In, SubMemo.poluchil AS U2Out
FROM [Memo] INNER JOIN SubMemo ON Memo.ID_memo = SubMemo.ID_memo) AS Q
GROUP BY U1, U2;

Красным показано, как должно быть.
А он меняет скобки на квадратные. Нужно следить за этим безобразием и исправлять.
...
Рейтинг: 0 / 0
Учет долгов
    #39407457
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот база.
Там нет Ваших запросов и отчетов. Мои только.
База в формате Ac2000, 7-ой Access на ноутбуке, нужно снова там преобразовывать.
Если потребуется, преобразую, но, думаю, и так пока нормально.
...
Рейтинг: 0 / 0
Учет долгов
    #39407462
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почти получил что мне нужно, сейчас посчитаю и скажу Вам уважаемый(ая) Michelle
П.С. немножко под градусом, извините
...
Рейтинг: 0 / 0
Учет долгов
    #39407463
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РЕСПЕКТ ВАМ МИШЕЛЬ СПАССИБО ВАМ. ВЕК НЕ ЗАБУДУ. Как хорошо, что в мире мало, но добрых людей. Большой поклон Вам и всех благ, чего могу пожелать.
...
Рейтинг: 0 / 0
Учет долгов
    #39407464
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser Artur,

Пожалуйста.)))
Если помните, мы с Вами обсуждали букву в технике квиллинг.
Вы не передумали? А то у меня что-то все руки не доходили до ответа, извините.
...
Рейтинг: 0 / 0
Учет долгов
    #39407509
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет Нет и Нет. Просто я был в командировке, а там я не взял с собой материалы. Так что не забыл. Если не затруднит, то скинете на мой мейл Ваш адрес.
...
Рейтинг: 0 / 0
Учет долгов
    #39407511
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__MichelleА вот база.
Там нет Ваших запросов и отчетов. Мои только.
База в формате Ac2000, 7-ой Access на ноутбуке, нужно снова там преобразовывать.
Если потребуется, преобразую, но, думаю, и так пока нормально.
Я немогу открыть Запрос2 и Запрос3 это так и должно быть пишет
...
Рейтинг: 0 / 0
Учет долгов
    #39407517
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser Artur,

Я уже потом увидела, что не удалила эти два, не относящиеся к делу, запроса.
Извините.
Нужны три таблицы с Вашими именами, Запрос1 и Отчет1.
...
Рейтинг: 0 / 0
Учет долгов
    #39407518
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мishel Ни как не могу найти Ваш мейл. Просьба выслать мне мейл с адресочком.
...
Рейтинг: 0 / 0
Учет долгов
    #39407523
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser Artur,

Хорошо. Сегодня к вечеру (хотя, сейчас-то что, спрашивается?).
В общем, в течение часа-двух.)))
...
Рейтинг: 0 / 0
Учет долгов
    #39407524
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СПАСИБО, ЖДУ и имя отправите тоже.
...
Рейтинг: 0 / 0
Учет долгов
    #39407632
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еше возник вопросик такой. Можете подкинуть идейку как получить отчет по задолженностям на ОПРЕДЕЛЕННЫЙ период. Мне надо как то суммировать нарастающим итогами или как? Спасибо
...
Рейтинг: 0 / 0
Учет долгов
    #39407754
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser Artur,
Вам необходимо продумать следующее: если совершена операция А отдал В 100 рублей, то в таблице, кроме этой должна появиться запись В получил от А 100 рублей(зтот процесс можно нужно автоматизировать-только в этом случае все данные по балансу клиентов будут верны
Что касается данных за период-тривиальный BETWEEN по дате
...
Рейтинг: 0 / 0
Учет долгов
    #39408045
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser ArturЕше возник вопросик такой. Можете подкинуть идейку как получить отчет по задолженностям на ОПРЕДЕЛЕННЫЙ период. Мне надо как то суммировать нарастающим итогами или как? СпасибоКак вариант, получать данные на начало периода, данные за период и итог.
Например, возьмем период с 02.02.2017 по настоящее время.
1. Данные на начало периода. Запрос 2.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT U1 AS Участник1, U2 AS Участник2, Sum(U2In) AS [Получил от Участника1], Sum(U2Out) AS [Отдал Участнику1], Sum(U2In)-Sum(U2Out) AS [Должен Участнику1]
FROM (SELECT SubMemo.ID_memo, Memo.uchastnik AS U1, SubMemo.uchastnik AS U2, SubMemo.poluchil AS U2In, SubMemo.otdal AS U2Out
FROM [Memo] INNER JOIN SubMemo ON Memo.ID_memo = SubMemo.ID_memo
WHERE dataP<#02/02/2017#
UNION ALL
SELECT SubMemo.ID_memo, SubMemo.uchastnik AS U1, Memo.uchastnik AS U2, SubMemo.otdal AS U2In, SubMemo.poluchil AS U2Out
FROM [Memo] INNER JOIN SubMemo ON Memo.ID_memo = SubMemo.ID_memo
WHERE dataP<#02/02/2017#) AS Q
GROUP BY U1, U2;

2. Данные за период. Запрос 3.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT U1 AS Участник1, U2 AS Участник2, Sum(U2In) AS [Получил от Участника1], Sum(U2Out) AS [Отдал Участнику1], Sum(U2In)-Sum(U2Out) AS [Должен Участнику1]
FROM [SELECT SubMemo.ID_memo, Memo.uchastnik AS U1, SubMemo.uchastnik AS U2, SubMemo.poluchil AS U2In, SubMemo.otdal AS U2Out
FROM (Memo] INNER JOIN SubMemo ON Memo.ID_memo = SubMemo.ID_memo
WHERE dataP>=#02/02/2017#
UNION ALL
SELECT SubMemo.ID_memo, SubMemo.uchastnik AS U1, Memo.uchastnik AS U2, SubMemo.otdal AS U2In, SubMemo.poluchil AS U2Out
FROM [Memo] INNER JOIN SubMemo ON Memo.ID_memo = SubMemo.ID_memo
WHERE dataP>=#02/02/2017#) AS Q
GROUP BY U1, U2;

3. Обобщенные данные. Запрос 4.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT *, Запрос2.Участник1 AS U1, Запрос2.Участник2 AS U2, Запрос2.[Должен Участнику1]+0 AS Итого
FROM Запрос2 LEFT JOIN Запрос3 ON (Запрос2.Участник1 = Запрос3.Участник1) AND (Запрос2.Участник2 = Запрос3.Участник2)
WHERE Запрос3.Участник1 Is Null AND Запрос3.Участник2 Is Null
UNION ALL
SELECT *, Запрос3.Участник1 AS U1, Запрос3.Участник2 AS U2, Запрос3.[Должен Участнику1]+0 AS Итого
FROM Запрос2 RIGHT JOIN Запрос3 ON (Запрос2.Участник1 = Запрос3.Участник1) AND (Запрос2.Участник2 = Запрос3.Участник2)
WHERE Запрос2.Участник1 Is Null AND Запрос2.Участник2 Is Null
UNION ALL 
SELECT *, Запрос2.Участник1 AS U1, Запрос2.Участник2 AS U2, Запрос2.[Должен Участнику1]+Запрос3.[Должен Участнику1] AS Итого
FROM Запрос2 INNER JOIN Запрос3 ON (Запрос2.Участник1 = Запрос3.Участник1) AND (Запрос2.Участник2 = Запрос3.Участник2);

5. На основании Запроса 4 получен Отчет 2.
Вот такой:
...
Рейтинг: 0 / 0
Учет долгов
    #39408051
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот база.
Запросы, наверное, если подольше подумать, можно сделать попроще и получше.
Пока так получилось.
...
Рейтинг: 0 / 0
Учет долгов
    #39408240
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Мишель джан

Я не силен в SQL, а вот здесь в Запрос2 в условие WHERE dataP<#02/02/2017# как вместо даты, указать дату, которое берется из поля другой Формы? Так что ли WHERE dataP<[Forms]![FilterDataReport]![DataP]?
...
Рейтинг: 0 / 0
Учет долгов
    #39408242
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде получилось
...
Рейтинг: 0 / 0
Учет долгов
    #39408243
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет нив какую Запрос2 и Запрос3 работают а Запрос4 не обновляется
...
Рейтинг: 0 / 0
Учет долгов
    #39408299
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ser Artur,

Все работает, все обновляется.
Просто заголовок отчета с указанием периода был фиксированным.
Но это же был просто пример формирования табличек отчета.
Вот БД с формой выбора начала-конца периода.
Если конец не задан, считается "по настоящее время".
В отчете заголовок теперь тоже меняется.
...
Рейтинг: 0 / 0
Учет долгов
    #39408311
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще поясню.
Перенастройка запросов выполняется в процедуре обработки нажатия кнопки "Получить отчет" формы.
Чтобы не связываться с этими появляющимися квадратными скобками и точками.
...
Рейтинг: 0 / 0
44 сообщений из 44, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Учет долгов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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