| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			В обычном SQL это выглядело бы так: 
		
		
		
		
		
		
		
	select count(DISTINCT AccountNum) from custTrans where AmountCur > 1000 Перевожу на русский - посчитать количество клиентов, сумма проводки по которым больше 1000. как это сделать с помощью Query?  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 X++: count(custTable.recID) exists join custTrans....  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну это не Query как я вижу
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 X++: QueryRun qr = SYS_ExpressionQueryBuilder::addDataSource(tableNum(CustTable)) .count(fieldNum(CustTable, recID)) .exists(tableNum(CustTrans)) .matches(fieldNum(CustTrans, AmountCur), '>100') .run();  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Если именно сумма больше, то через запросы в аксапте вы этого пока сделать не можете (это необходим having sum(amountCur) > 1000 
		
		
		
		
		
		
			
		
		
		
		
	X++: while select sum(AmountCur) from custTrans group by AccountNum { if (custTrans.amountCur > 1000) info(custTrans.accountNum) }  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			сумма проводки а не проводок
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			приблуда для людей замученных кверибилддатасурсами
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Russland (1). | |
| 
			
			 | 
		#9 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			приблуда для людей замученных кверибилддатасурсами
		
	 
				__________________ 
		
		
		
		
	![]() В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню  | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А Маззи говорит что это все фигня и надо визуально делать.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Дело в том, что истина посредине. 
		
		
		
		
		
		
			Просто не надо злоупотреблять ни тем, ни другим подходом. 
				__________________ 
		
		
		
		
	![]() В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			а мне жутко не нравятся аотные квери прежде всего тем, что взглядом не определишь, что там настроено. Надо ковыряться, разворачивать и смотреть свойства.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			не нравятся аотные квери прежде всего тем, что взглядом не определишь, что там настроено. Надо ковыряться, разворачивать и смотреть свойства
		
	 
Зато когда строится стандартный отчёт, квери в АОТ сами просятся. 
				__________________ 
		
		
		
		
	![]() В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню  | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от belugin
			 
 
			приблуда для людей замученных кверибилддатасурсами 
		
	 | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			мне четно говоря влом расшифровывать. Общая идея понятна?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Идея непонятна 
		
		
		
		
		
		
		
	Цитата: 
	
		
			QueryRun qr = SYS_ExpressionQueryBuilder::addDataSource(tableNum(CustTable)) 
.count(fieldNum(CustTable, recID)) .exists(tableNum(CustTrans)) .matches(fieldNum(CustTrans, AmountCur), '>100') .run();} если поставить .count(fieldNum(CustTable, AccountNum)) возвращает 0.  | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Забыл link 
		
		
		
		
		
		
		
	X++: QueryRun qr = SYS_ExpressionQueryBuilder::addDataSource(tableNum(CustTable)) .count(fieldNum(CustTable, recID)) .exists(tableNum(CustTrans)) .link(fieldNum(CustTable, AccountNum), fieldNum(CustTrans, AccountNum)) .matches(fieldNum(CustTrans, AmountCur), '>100') X++: SELECT COUNT(A.RECID) FROM CUSTTABLE A WHERE (A.DATAAREAID='dat') AND EXISTS (SELECT 'x' FROM CUSTTRANS B WHERE ((B.DATAAREAID='dat') AND ((B.AMOUNTCUR>1.E2) AND (A.ACCOUNTNUM=B.ACCOUNTNUM)))) OPTION(FAST 5)  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Prof (2). | |
| 
			
			 | 
		#18 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Тогда годится что-то типа такого кода: X++: select count(RecId) from CustTable exists join CustTrans where CustTrans.AccountNum == CustTable.AccountNum && CustTrans.AmountMST > 1000;  
		Последний раз редактировалось Михаил Андреев; 12.10.2007 в 23:39.  | 
| 
	
 |