powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / И снова оборотно-сальдовая ведомость (ОСВ)
5 сообщений из 5, страница 1 из 1
И снова оборотно-сальдовая ведомость (ОСВ)
    #32194978
Чумаков А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Замучался я уже:
в mdb у меня ОСВ формировалась в запросе (результирующий), который включал в себя еще запросы (первичные)

первичные такие:
1) Входящее сальдо (Balans_Saldo)
SELECT CustomerSaldo.Number, CustomerSaldo.Saldo
FROM CustomerSaldo
WHERE (((CustomerSaldo.Date)=[Forms]![CustomerSaldoInfo]![BeginDate]))
GROUP BY CustomerSaldo.Number, CustomerSaldo.Saldo;
2) Платежи (Balans_Pay):
SELECT CustomerPay.IDCust, Sum(CustomerPay.Amount) AS [Sum-Amount]
FROM CustomerPay
WHERE (((CustomerPay.DatePay)>=[Forms]![CustomerSaldoInfo]![BeginDate] And (CustomerPay.DatePay)<[Forms]![CustomerSaldoInfo]![EndDate]))
GROUP BY CustomerPay.IDCust;
3) Наработка (Balans_Work_TehPD):
SELECT TehPD_Documents.Number, Sum([Summa]+[NDS]) AS Tariff
FROM TehPD_Documents
WHERE (((TehPD_Documents.Date)>=[Forms]![CustomerSaldoInfo]![BeginDate] And (TehPD_Documents.Date)<[Forms]![CustomerSaldoInfo]![EndDate]))
GROUP BY TehPD_Documents.Number
ORDER BY TehPD_Documents.Number;

Результирующий выглядит так:
SELECT Members.Filials, Customers.Number, Customers.Firms, Customers.FirmsReal, [Saldo] AS Ost, [Sum-Amount] AS Pay, [Tariff] AS RepTehPD
FROM Members INNER JOIN (((Customers LEFT JOIN Balans_Pay ON Customers.Number = Balans_Pay.IDCust) LEFT JOIN Balans_Work_TehPD ON Customers.Number = Balans_Work_TehPD.Number) LEFT JOIN Balans_Saldo ON Customers.Number = Balans_Saldo.Number) ON Members.Code = Customers.Member
ORDER BY Members.Filials, Customers.Firms;

------------------------------------------------
При переходе с mdb на ADP возникла проблема.
Первичные запрсы я сделал в виде VIEW (правда, неясно как во VIEW передать условия по дате ?), поэтому там добавлена еще группировка по дате
А условия по дате предполагалось передавать в SP, которая яввляет собой Результирующий запрос.
Правилен ли такой подход ? ИНдексы все есть, но работает жутко медленно.
...
Рейтинг: 0 / 0
И снова оборотно-сальдовая ведомость (ОСВ)
    #32194999
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подход не правильный. Создавай процедуру, первичные запрсы оформляй в ней как подзапросы с фильтрацией по дате. Период задавай входными параметрами. Если, в итоге, быстродействие не устроит, надо будет смотреть процедуру. Всегда есть шанс оптимизировать (если, конечно, база спроектирована правильно) :)
...
Рейтинг: 0 / 0
И снова оборотно-сальдовая ведомость (ОСВ)
    #32195025
Чумаков А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо - создал я первичные запросы в виде хранимых процедур с фильтрацией по дате,
а как их потом в результирующую процедуру вставить ?

Чего писать в SELCT результирующей процедуре ?
...
Рейтинг: 0 / 0
И снова оборотно-сальдовая ведомость (ОСВ)
    #32195028
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не должно быть у тебя ни первичных ни результирующих процедур. Должна быть одна. Первичные запросы должны являтся подзапросами к результирующему запросу. Типа (сильно упрощенно)
Select sq1* From (Select * From table1) sq1
...
Рейтинг: 0 / 0
И снова оборотно-сальдовая ведомость (ОСВ)
    #32195043
Чумаков А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.
Попробую по этому пути пойти.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / И снова оборотно-сальдовая ведомость (ОСВ)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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