|  10.11.2004, 10:28 | #1 | 
| Участник |  Оборотно-сальдовая одним запросом ??? 
			
			Уважаемый All, есть маленькая проблема. Необходимо разработать оборотно-сальдовую ведомость, в которой обороты разрезаются по нескольким дополнительным аналитикам, например - по датам, по номенклатурным группам. При этом необходим режим "Только итоги по номенклатурным группам", или "Только итоги по датам". В стандартном SQL - это просто GROUP BY. В Аксапта при генерации отчета тоже можно поставить признак "Только итоги". Единственное ограничение - результирующий набор должен извлекаться одним Query. В MS SQL я могу написать оборотно сальдовую одним SQL-запросом: select ItemId, NameAlias, (select (sum(AvailPhysical) from InventSum S where S.ItemId = N.ItemId) as SaldoNow, (select sum(Qty) from InventTrans T where T.ItemId = N.ItemId and DatePhysical < @DateBegin and StatusReceipt > 0) as Obr1In, (select sum(Qty) from InventTrans T where T.ItemId = N.ItemId and DatePhysical < @DateBegin and StatusIssue > 0) as Obr1Out, ... SaldoNow - Obr1In + Obr1Out as SaldoBegin, ...... from InventTable N; Принцип понятен. Используются вложенные запросы. Каждый вложенный запрос я могу оформить отдельной функцией, тогда оборотку можно будет извлечь так: select ItemId, NameAlias, SaldoBegin(ItemId, @DateBegin), ObrIn(ItemId, @DateBegin, @DateEnd), ObrOut(ItemId, @DateBegin, @DateEnd), SaldoEnd(ItemId, @DateEnd), from InventTable; Такой запрос можно джойнить к дополнительным таблицам и получать отчеты с группировками с помощью стандартного Query. Вопрос - такое возможно в Аксапта ? Я просто смотрел код оборотки - там используется цикл, а сальдо и обороты извлекаются отдельными запросами. Соответственно - все промежуточныи итоги и группировки надо програмить явно. А это - очень грустно. Хочется простого и универсального механизма. Заранее благодарен за рассмотрение. 
				__________________ С уважением, Евгений. | 
|  |