| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Подскажите как реализовать такой запрос в Axapte 
		
		
		
		
		
		
		
	select InventDim.inventDimId, InventSum.ItemId, InventDim.inventSerialId, InventSerial.AdvertAction, SUM(InventSum.PostedQty)PostedQty, SUM(InventSum.PostedValue)PostedValue FROM InventSum JOIN InventDim on InventDim.inventDimId = InventSum.InventDimId JOIN InventSerial on InventSerial.InventSerialId = InventDim.inventSerialId JOIN InventTable on InventSum.ItemId = InventTable.ItemId where InventDim.inventSerialId<>'' GROUP BY InventDim.inventDimId,InventSum.ItemId, InventDim.inventSerialId , InventSerial.AdvertAction order by InventSum.ItemId  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Не совсем понятно, зачем здесь упомянута таблица InventTable...
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			ну можно и без этой таблицы 
		
		
		
		
		
		
		
	select InventDim.inventDimId, InventSum.ItemId, InventDim.inventSerialId, InventSerial.AdvertAction, SUM(InventSum.PostedQty)PostedQty, SUM(InventSum.PostedValue)PostedValue FROM InventSum JOIN InventDim on InventDim.inventDimId = InventSum.InventDimId JOIN InventSerial on InventSerial.InventSerialId = InventDim.inventSerialId where InventDim.inventSerialId<>'' GROUP BY InventDim.inventDimId,InventSum.ItemId, InventDim.inventSerialId , InventSerial.AdvertAction order by InventSum.ItemId  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А group by и order by по полям на одной таблице помоему нельзя...
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Да OREDER BY модно опустить... сама логика нужна
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Обязательно должна быть еще связка InventSerial.itemId = InventSum.itemId;
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			select sum(PostedQty), sum(PostedValue) from inventSum  group by itemId, inventDimId 
		
		
		
		
		
		
		
	join InventDim where InventDim.inventDimId == inventSum.InventDimId join InventSerial where InventSerial.InventSerialId == InventDim.inventSerialId && InventSerial.InventSerialId != ''; что вроде этого  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			select ItemId, sum(PostedQty), sum(PostedValue) from InventSum group by ItemId 
		
		
		
		
		
		
		
	join InventDimId,InventSerialId from InventDim where InventDim.inventSerialId != "" && InventDim.inventDimId = InventSum.InventDimId group by inventDimId,inventSerialId join InventSerial where InventSerial.InventSerialId = InventDim.inventSerialIdgroup by AdvertAction Помоему так (отпишись потом верно нет   )
		 | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			2Sada  
		
		
		
		
		
		
		
	зачем select itemid если есть group by itemid? itemid и так будет доступен. разве нет?  | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			2 latvik для верности и понятливости...(чтоб ближе к вопросу было)
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я все-таки настаиваю на обязательности связки InventSerial.itemId = InventSum.itemId  по той причине, что в таблице InventSerial уникальность поддерживается совокупностью полей ItemId  и inventSerialId, и предлагаю свой вариант решения: 
		
		
		
		
		
		
		
	PHP код: 
	
			
	А вот что выдал трассировщик SQL по этому вопросу: Код: SELECT SUM(A.POSTEDQTY),SUM(A.POSTEDVALUE),A.ITEMID,B.INVENTDIMID,B.INVENTSERIALID,C.PRODDATE FROM INVENTSUM A,INVENTDIM B,INVENTSERIAL C WHERE (A.DATAAREAID='zkr') AND ((B.DATAAREAID='zkr') AND ( NOT ((B.INVENTSERIALID=' ')) AND (A.INVENTDIMID=B.INVENTDIMID))) AND ((C.DATAAREAID='zkr') AND ((C.ITEMID=A.ITEMID) AND (B.INVENTSERIALID=C.INVENTSERIALID))) GROUP BY A.ITEMID,B.INVENTDIMID,B.INVENTSERIALID,C.PRODDATE ORDER BY A.ITEMID,B.INVENTDIMID,B.INVENTSERIALID,C.PRODDATE OPTION(FAST 16)  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			to Roman777 
		
		
		
		
		
		
		
	Согласен с необходимостью InventSerial.itemId = InventSum.itemId, но как это реализовать - это уже дело каждого ![]() Главное сам принцип...(синтаксис и все такое(помоему это интересовало автороа темы(хотя я могу и ошибаться(пардон за вложенность...)))...)  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Круто получилось.... 
		
		
		
		
		
		
		
	Спасибо... сейчас попробую....  | 
| 
	
 |