|  03.08.2005, 14:28 | #1 | 
| Участник |  Почему суммируется только последнее значение? 
			
			Господа знатоки, объясните мне пожалуйста, почему в представленном ниже запросе в поле попадает только последнее суммарное значение contractSpecification.QuotaDelivered +purchLine.OR_InvoiceQty,  а не сумма всех строк запроса purchLine.OR_InvoiceQty + contractSpecification.QuotaDelivered? Пример: contractSpecification.QuotaDelivered = 15 запрос возвращает 20; 30; 40 Итог работы процедуры : 55 НО ДОЛЖНО БЫТЬ, по моей логике, 105! while select forupdate contractSpecification join purchLine where contractSpecification.ItemId == purchLine.ItemId && contractSpecification.Licence == purchLine.OR_Licence && contractSpecification.CIP == purchLine.PurchPrice && purchLine.PurchId == purchTable.PurchId { contractSpecification.QuotaDelivered += purchLine.OR_InvoiceQty; contractSpecification.update(); } | 
|  | 
|  03.08.2005, 14:42 | #2 | 
| Модератор | PHP код: 
			Георгий | 
|  | 
|  03.08.2005, 14:47 | #3 | 
| Участник | 
			
			это глобально определенная таблица в классе. Она определена и значение PurchId !=0
		 | 
|  | 
|  03.08.2005, 14:49 | #4 | 
| Модератор | 
			
			Ну. Так работает?
		 | 
|  | 
|  03.08.2005, 14:52 | #5 | 
| Участник | 
			
			нет, не работает. Я просто пояснила про значение глобально определенной таблицы Секунду, там изменили запрос! Вообще не так! Куда ушил фигурные скобки и суммирование полей?? В этом же смысл! | 
|  | 
|  03.08.2005, 15:11 | #6 | 
| Модератор | 
			
			Блин, гражданка vesna! Я ж там уже сумму выбираю!!   С Уважением, Георгий | 
|  | 
|  03.08.2005, 15:23 | #7 | 
| Участник | 
			
			Гражданин знаток, посмотрите внимательней логику того, что было и что Вы предлагаете. Это разные вещи!  Обе таблицы имеют несколько записей. Их связывают по ключевым полям. И далее меняют у одной из таблиц поле, суммируя значения в соответствии с ключами Здесь никак не выйдет просто одна сумма. Или надо делать цикл в цикле....... | 
|  | 
|  03.08.2005, 15:24 | #8 | 
| Участник | 
			
			12-го поговорим тет-а-тет по логике этой дамы Аксапты    | 
|  | 
|  03.08.2005, 15:29 | #9 | 
| Модератор | 
			
			Хм.   Напишите так, как я сказал, и все заработает. Ну, добавьте цикл по всем записям. PHP код: 
			 | 
|  | 
|  03.08.2005, 15:43 | #10 | 
| Участник | 
			
			я еще засомнивалась сначала как-то........ Всё так и есть. Не хватает Group by! Но если я для PurchLine его определяю, то не отрабатывают, что естественно для Аксапты, связи с таблицей contractSpecification. Ее RecId возвращает нулевое значение и ошибка о том, что непонятно, у какой строчки я хочу сделать update значения. | 
|  | 
|  03.08.2005, 15:52 | #11 | 
| Модератор | 
			
			А что добавить группировку у contractSpecification? Правда, возможно, что в план запроса придется включить PurchTable и группировать по нему. Короче, не мучайте меня. Напишите [дисплей] - метод и юзайте его: PHP код: 
			 Увидимся! | 
|  | 
|  03.08.2005, 16:23 | #12 | 
| ---------------- | Цитата: 
		
			почему в представленном ниже запросе в поле попадает только последнее суммарное значение
		
	 | 
|  | 
|  03.08.2005, 16:28 | #13 | 
| Участник | 
			
			Поняла. Спасибо всем
		 | 
|  | 
|  03.08.2005, 16:33 | #14 | 
| ---------------- | И еще 
			
			Лучше сделать внешним циклом запрос по purchLine PHP код: 
			 | 
|  | 
|  03.08.2005, 17:47 | #15 | 
| Участник | 
			
			спасибо. отличный вариант. Воспользовалась им
		 | 
|  |