Показать сообщение отдельно
Старый 28.11.2003, 16:09   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Re: знатокам query
Погоди, Максим. Ты прав с технической стороны.

Чтобы сделать то, что andreynikolai сказал на человеческом языке, запрос вообще по другой таблице делать надо.

Сгруппируйте по клиенту CustTransOpen.
Вы получите список клиентов с открытыми проводками.
Далее из этого списка надо выбрать тех, кто имеет проводки для сопоставления.

Я бы чуть изменил условия задачи и показывал всех клиентов у которых число проводок больше 2. С практической точки зрения, этого вполне достаточно.

Если условия задачи не менять, то надо показать клиентов у которых есть проводки с положительной и отрицательной суммой в custTransOpen.

Далее возникает сложность как в одном запросе сделать max,min, если Аксапта не позволяет подставлять алиасы для полей. Но у нас есть два поля с суммами, а нам нужен только +-.

поэтому select, по которому должен строится запрос должен выглядеть так
Код:
CusttransOpen cto;
select minof(AmountCur), maxof(AmountMST) from cto
    group by AccountNum;
Далее, возникает проблема с тем, что в Аксапте нет Having и нельзя одним запросом отобрать те строки в которых сумма и положительная и отрицательная. Но можно это выделить цветом в форме.

В чем состоит мораль:
1. выразите на простом человеческом языке ваше желание.
2. посмотрите есть ли уже готовая функциональность для этого
3. поищите существующие таблицы
4. если нет прямого ответа, то может стоит чуть модифицировать ваше желание?

Дополнительно: профилируйте запросы. Старайтесь не задавать SQL'ю работу по перебору проводок от начала времен. Тем более, в сложных join'ах.

Query и форма для Аксапты 3.0 прилагаются в проекте.
Обратите внимание, что query лучше не строить динамически, а задавать в АОТе.


//// Интересно как php показал Group By... Попробуем так...
Вложения
Тип файла: xpo mazaxforum.xpo (45.4 Кб, 629 просмотров)