Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 13.08.2016
Сообщений: 9
1

Оборотно-сальдовая ведомость в разрезе дней

15.11.2016, 19:06. Показов 3450. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Прошу помощи по созданию Оборотно-сальдовой ведомости.
Знаю, что тема уже неоднократно поднималась, однако, самостоятельно в ней разобраться не удается.
Во вложении мини аналог базы данных с основными необходимыми данными.

Остаток на начало равен первому поступившему доходу (в моем примере на 01.11.2016 - 30 000 руб). В итоге нужен именно запрос, отражающий по дням остатки и обороты.
--Связь в таблицах осуществляется через дату.
--Оригинальная баз состоит из множества таблиц и связь через дату позволяет проще всего сопоставлять различные события/данные (таблицы), поэтому нарушать ее не хотелось бы.
-- Пытался посчитать нарастающими итогами доходы и расходы и от этого считать остаток на конец, а затем и на начало (смещением в один день), однако в силу неопытности, не могу посчитать нарастающие итоги на каждый день.
--Не до конца понимаю как работает DSum.

Подскажите как можно сделать, уже всю голову изломал.
P.S. Не судите слишком строго. Новичок в Аксесс.
Вложения
Тип файла: rar ОСВ.rar (24.3 Кб, 57 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2016, 19:06
Ответы с готовыми решениями:

Отчет по: Оборотно-сальдовая ведомость и Баланс
Доброго времени суток. Пытаюсь сделать Отчеты 1) Оборотно-сальдовая ведомость (ОСВ); 2) Баланс....

Оборотно-сальдовая ведомость по счету
формируется ведомость в заголовке "сальдо на конец периода" Дебет в конце отчета выдает в графе...

Оборотно-сальдовая ведомость по счету 62.1
Добрый день! Возникла непонятка с Оборотно-сальдовой ведомостью (см. Скрин) т.е. (Обороты за...

Оборотно-сальдовая ведомость по счету
На скриншотах видно,отчет один и тот же. Требуются перенести сальдо на начало периода в колонку...

9
шапоклякистка 8-го дня
3679 / 2239 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
15.11.2016, 20:38 2
Пересохраните базу в более раннем формате, пожалуйста (хотя бы 2007. хотя у многих тут только 2003).

Добавлено через 50 секунд
И это.. оборотку обычно делают за месяц, вы точно уверены, что вам по дням нужно?
0
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
15.11.2016, 20:41 3
используйте такой запрос:
SQL
1
2
3
SELECT Доходы.Дата_календарь, SUM(Доходы.Сумма_дохода) AS [Сумма_дохода]
FROM Доходы
GROUP BY Доходы.Дата_календарь;
* сохранить в старом формате не даёт - "используются бла-бла-бла.."
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
15.11.2016, 20:49 4
Лучший ответ Сообщение было отмечено Den_v как решение

Решение

Если правильно понял ТЗ, то запрос может быть такой
SQL
1
2
3
4
5
6
7
8
SELECT Календарь.Дата_календарь, val(nz(Доходы.Сумма_дохода,0)) AS ДоходТек, 
  val(nz(Расходы.Количество*Расходы.Цена,0)) AS РасходТек,
  (SELECT val(nz(SUM(Сумма_дохода),0))  FROM Доходы WHERE Доходы.Дата_календарь<Календарь.Дата_календарь) AS ДоходПред,
  (SELECT val(nz(SUM(Количество*Цена),0))  FROM Расходы WHERE Расходы.Дата_календарь<Календарь.Дата_календарь) AS РасходПред,
  val(nz(ДоходПред,0)-nz(РасходПред,0)) AS СальдоНач, СальдоНач+ДоходТек-РасходТек AS СальдоКонеч
FROM Календарь, Доходы, Расходы,
Календарь LEFT JOIN Доходы ON Календарь.Дата_календарь = Доходы.Дата_календарь,
Календарь LEFT JOIN Расходы ON Календарь.Дата_календарь = Расходы.Дата_календарь
1
0 / 0 / 0
Регистрация: 13.08.2016
Сообщений: 9
15.11.2016, 21:53  [ТС] 5
Mobile, Огромное спасибо! Я очень впечатлен. Вам удалось все это еще и одним запросом сделать. Очень лаконично и элегантно получилось. Взял на вооружение. Это именно то, что нужно было. По коду запроса все понятно. Только поясните, если не сложно как здесь val работает?
P.s. Спасибо, всем кто принял участие. Сохранить в более раннюю версию тоже не получилось. (у меня Аксесс 2013)
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
15.11.2016, 22:07 6
Цитата Сообщение от Den_v Посмотреть сообщение
как здесь val работает?
Функция NZ возвращает строку. Число но текстовым типом. Функция Val превращает стринг в числовой тип. Это видно даже по экранному представлению (даташит) запроса: если убрать Val, то значение прижимается к левой границе как текст. С Val к правой как число.
1
0 / 0 / 0
Регистрация: 13.08.2016
Сообщений: 9
16.11.2016, 09:18  [ТС] 7
Понял. Спасибо!
0
шапоклякистка 8-го дня
3679 / 2239 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
16.11.2016, 10:00 8
Цитата Сообщение от mobile Посмотреть сообщение
Функция NZ возвращает строку.
Точно? Делаю в Immediate

Visual Basic
1
2
?TypeName(Nz(null,0))
Integer
0
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
16.11.2016, 10:11 9
texnik-san, поддерживаю. Не наблюдал некорректных типов от самой функции. Может тут дело в поле на форме? Если тип поля не задан, Access его по-разному может "предоставлять" пользователю?
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
16.11.2016, 11:09 10
Nz возвращает Variant. Подтип может быть любой. И как мне представляется, когда подтип не удается, по разным причинам, определить точно, задается стринг. В частности, по запросу показанному выше, поведение поля с Nz указывало на стринг - число прижималось к левому краю как текст
2
16.11.2016, 11:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.11.2016, 11:09
Помогаю со студенческими работами здесь

Долго формируется отчет оборотно-сальдовая ведомость по счету 60
Формирование счета за 2014 год длиться порядка 20 минут. Файловая база, пользователи работают в...

Отчет "Движение товара" или "Оборотно-сальдовая ведомость"
Доброго времени суток! Почитав статьи, форумы все же я не смогла справиться самостоятельно (не...

Добавить в оборотно-сальдовую ведомость дополнительный критерий отбора
Здравствуйте. Организация занимается закупом зерна. Необходимо привязать каждый объем к менеджеру...

Вывести число дней в заданном году, учитывая, что обычный год насчитывает 365 дней, а високосный — 366 дней
11 Дан номер некоторого года (положительное целое число). Вывести число дней в этом году, учитывая,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru