Выбрать из регистра

1. LOTR 25.04.19 18:59 Сейчас в теме
Привет всем пытаюсь выбрать максимальную дату заказа и причины отклонения заказа
ВЫБРАТЬ
	МАКСИМУМ(УведомленияORDRSP.ДатаПостановки) КАК ДатаПостановки,
	УведомленияORDRSP.ЗаказEDI,
	УведомленияORDRSP.ПричинаОтклонения
ИЗ
	РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP

СГРУППИРОВАТЬ ПО
	УведомленияORDRSP.ЗаказEDI,
	УведомленияORDRSP.ПричинаОтклонения
Показать


Но он выводит все даты и все заказы и все причины отклонения, подскажите как лучше сделать
+
По теме из базы знаний
Найденные решения
19. tusv 211 26.04.19 09:46 Сейчас в теме
(16) Чтож на 8.0 то до сих пор. да Без СКД
ВЫБРАТЬ 
Даты.ДатаМакс,
Максимум(УведомленияМакс.ЗаказEDI) Как ЗаказМакс,
//....
ИЗ (Выбрать Максимум(ДатаПостановки) КАК ДатаМакс,
Минимум(ДатаПостановки) КАК ДатаМин
ИЗ РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP) КАК Даты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УведомленияORDRSP КАК УведомленияМакс
ПО .Даты.ДатаМакс = УведомленияМакс.ДатаПостановки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УведомленияORDRSP КАК УведомленияМин
ПО .Даты.ДатаМин = УведомленияМин.ДатаПостановки
Показать
+
20. dhurricane 26.04.19 09:55 Сейчас в теме
(18) Может так?
ВЫБРАТЬ 
   УведомленияORDRSP.ДатаПостановки КАК ДатаПостановки, 
   УведомленияORDRSP.ЗаказEDI, 
   УведомленияORDRSP.ПричинаОтклонения 
ИЗ 
   РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP
ГДЕ
   УведомленияORDRSP.ДатаПостановки В 
      (ВЫБРАТЬ 
         МАКСИМУМ(УведомленияORDRSP.ДатаПостановки) КАК ДатаПостановки 
      ИЗ 
         РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP) 
Показать
+
31. dhurricane 26.04.19 10:22 Сейчас в теме
(30) Воспользуйтесь советом из (19).
+
35. dhurricane 26.04.19 13:07 Сейчас в теме
(32) Если не может быть несколько различных заказов на одну и ту же дату (либо в результате они нужные все), то вот пример:
ВЫБРАТЬ 
	Т1.ДатаПостановки    КАК ПерваяДатаПостановки,
	Т1.ЗаказEDI          КАК ПервыйЗаказ,
	Т1.ПричинаОтклонения КАК ПерваяПричина,
	
	Т2.ДатаПостановки    КАК ПоследняяДатаПостановки,
	Т2.ЗаказEDI          КАК ПоследнийЗаказ,
	Т2.ПричинаОтклонения КАК ПоследняяПричина 
ИЗ 	
	(ВЫБРАТЬ
		МАКСИМУМ(Т.ДатаПостановки) КАК МаксДата,
		МИНИМУМ(Т.ДатаПостановки) КАК МинДата
	ИЗ
		РегистрСведений.УведомленияORDRSP КАК Т) КАК ВтДаты
		
	ВНУТРЕННЕЕ СОЕДИНЕНИЕ
		РегистрСведений.УведомленияORDRSP КАК Т1
	ПО
		ВтДаты.МаксДата = Т1.ДатаПостановки
		
	ВНУТРЕННЕЕ СОЕДИНЕНИЕ
		РегистрСведений.УведомленияORDRSP КАК Т2
	ПО
		ВтДаты.МинДата = Т2.ДатаПостановки
Показать
+
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. VladimirB 16 25.04.19 19:32 Сейчас в теме
Должен группировать. может у вас данных немного. Сравните возвращаемые данные своего запроса с этим:

ВЫБРАТЬ 
УведомленияORDRSP.ДатаПостановки КАК ДатаПостановки, 
УведомленияORDRSP.ЗаказEDI, 
УведомленияORDRSP.ПричинаОтклонения 
ИЗ 
РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP 

тот же самый набор данных?
+
3. VladimirB 16 25.04.19 19:35 Сейчас в теме
У вас для одного заказа несколько причин и дат постановки?
+
4. LOTR 25.04.19 19:36 Сейчас в теме
нет несколько заказов, несколкьо причин, несколько дат, и из дат он должен был сгруппировать по максимальной и вывести ту строку, с максимальной датой, а вывел все
+
5. LOTR 25.04.19 19:36 Сейчас в теме
данных совсем мало
+
6. LOTR 25.04.19 19:36 Сейчас в теме
7. VladimirB 16 25.04.19 19:37 Сейчас в теме
А распечатку можно тогда глянуть
+
8. LOTR 25.04.19 19:37 Сейчас в теме
1 заказ = 1 причине простите, причины не дублируются
+
9. VladimirB 16 25.04.19 19:37 Сейчас в теме
ну тогда все правильно сгруппировано
+
12. LOTR 25.04.19 19:40 Сейчас в теме
(9)Деблей в заказе тоже нет
+
10. tusv 211 25.04.19 19:38 Сейчас в теме
Если надо получить последнюю причину отклонения
То сначала нужно получить макс дату по заказу, а затем присоединить причину
ВЫБРАТЬ 
МАКСИМУМ(УведомленияORDRSP.ДатаПостановки) КАК ДатаПостановки, 
УведомленияORDRSP.ЗаказEDI
ПОМЕСТИТЬ ЗаказыСрезПоследних
ИЗ 
РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP 
ГДЕ не УведомленияORDRSP.ПричинаОтклонения = ЗНАЧЕНИЕ(Справочник.ПричиныОтклонения.)
СГРУППИРОВАТЬ ПО 
УведомленияORDRSP.ЗаказEDI;

ВЫБРАТЬ
ЗаказыСрезПоследних.ЗаказEDI,
ЗаказыСрезПоследних.ДатаПостановки,
УведомленияORDRSP.ПричинаОтклонения 
ИЗ ЗаказыСрезПоследних КАК  ЗаказыСрезПоследних 
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP
ПО ЗаказыСрезПоследних.ЗаказEDI = УведомленияORDRSP.ЗаказEDI
И УведомленияORDRSP.ДатаПостановки = ЗаказыСрезПоследних.ДатаПостановки

Показать
+
14. tusv 211 25.04.19 19:54 Сейчас в теме
Так что Вы хотите получить? Одну строчку? с последней датой постановки, Заказом и причиной?
Тогда принцип тот же, что и написал в (10) Только во временную таблицу помещаем только одно поле Максимум(ДатаПостановки) и к нему присоединяем Регистр по дате с Максимальным заказом
+
15. LOTR 26.04.19 09:32 Сейчас в теме
да получить только 1 строчку (14) с максимальной датой
+
16. LOTR 26.04.19 09:32 Сейчас в теме
(14) только это 8.0 и врем таблица не катит
+
19. tusv 211 26.04.19 09:46 Сейчас в теме
(16) Чтож на 8.0 то до сих пор. да Без СКД
ВЫБРАТЬ 
Даты.ДатаМакс,
Максимум(УведомленияМакс.ЗаказEDI) Как ЗаказМакс,
//....
ИЗ (Выбрать Максимум(ДатаПостановки) КАК ДатаМакс,
Минимум(ДатаПостановки) КАК ДатаМин
ИЗ РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP) КАК Даты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УведомленияORDRSP КАК УведомленияМакс
ПО .Даты.ДатаМакс = УведомленияМакс.ДатаПостановки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УведомленияORDRSP КАК УведомленияМин
ПО .Даты.ДатаМин = УведомленияМин.ДатаПостановки
Показать
+
11. LOTR 25.04.19 19:40 Сейчас в теме
Вот распечатка
Прикрепленные файлы:
+
17. dhurricane 26.04.19 09:38 Сейчас в теме
(11) Уточните, пожалуйста, что именно здесь неверно? Для каждого заказа здесь своя максимальная дата, заказы не повторяются. Какой результат ожидаете?
+
18. LOTR 26.04.19 09:43 Сейчас в теме
(17)Что бы вывелась максимальная дата с 1 заказом и 1 причиной
+
20. dhurricane 26.04.19 09:55 Сейчас в теме
(18) Может так?
ВЫБРАТЬ 
   УведомленияORDRSP.ДатаПостановки КАК ДатаПостановки, 
   УведомленияORDRSP.ЗаказEDI, 
   УведомленияORDRSP.ПричинаОтклонения 
ИЗ 
   РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP
ГДЕ
   УведомленияORDRSP.ДатаПостановки В 
      (ВЫБРАТЬ 
         МАКСИМУМ(УведомленияORDRSP.ДатаПостановки) КАК ДатаПостановки 
      ИЗ 
         РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP) 
Показать
+
21. LOTR 26.04.19 09:57 Сейчас в теме
(20)Да это то что нужно
+
22. LOTR 26.04.19 09:57 Сейчас в теме
23. LOTR 26.04.19 10:10 Сейчас в теме
(20)А вопрос, а как еще и минимум сделать с этим полем
+
25. dhurricane 26.04.19 10:11 Сейчас в теме
(23) Т.е. получить 2 строки: для меньшей и для большей даты?
+
24. LOTR 26.04.19 10:10 Сейчас в теме
(20)Просто мне надо и минимум получить и максимум
+
27. dhurricane 26.04.19 10:14 Сейчас в теме
(24) Вероятно так:
ВЫБРАТЬ 
	УведомленияORDRSP.ДатаПостановки КАК ДатаПостановки, 
	УведомленияORDRSP.ЗаказEDI, 
	УведомленияORDRSP.ПричинаОтклонения 
ИЗ 
	РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP
ГДЕ
	УведомленияORDRSP.ДатаПостановки В 
		(ВЫБРАТЬ 
			МАКСИМУМ(Т1.ДатаПостановки) КАК ДатаПостановки 
		ИЗ 
			РегистрСведений.УведомленияORDRSP КАК Т1
			
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ 
			МИНИМУМ(Т2.ДатаПостановки) КАК ДатаПостановки 
		ИЗ 
			РегистрСведений.УведомленияORDRSP КАК Т2)
Показать
+
13. LOTR 25.04.19 19:47 Сейчас в теме
Еще мне тоже самое надо провернуть с тем же самым полем но с функцией минимум, не понятно как это все в 3 поля раскидать
+
26. LOTR 26.04.19 10:13 Сейчас в теме
28. LOTR 26.04.19 10:17 Сейчас в теме
Выводит но не в отдельную строку
+
29. dhurricane 26.04.19 10:19 Сейчас в теме
(28) Не до конца понял. Нужно получить одну строку с двумя датами?
+
30. LOTR 26.04.19 10:19 Сейчас в теме
да, как ДатаПервойОтправки- минимум и датойотправки - максимум
+
31. dhurricane 26.04.19 10:22 Сейчас в теме
(30) Воспользуйтесь советом из (19).
+
32. LOTR 26.04.19 12:37 Сейчас в теме
(31)Да, я получил максимум, вообще без сложностей, а вот как еще и минимальную дату получить, это загадка))
+
34. dhurricane 26.04.19 13:00 Сейчас в теме
(32) Так там ведь и максимум, и минимум. В чем же именно сложность возникла?
+
35. dhurricane 26.04.19 13:07 Сейчас в теме
(32) Если не может быть несколько различных заказов на одну и ту же дату (либо в результате они нужные все), то вот пример:
ВЫБРАТЬ 
	Т1.ДатаПостановки    КАК ПерваяДатаПостановки,
	Т1.ЗаказEDI          КАК ПервыйЗаказ,
	Т1.ПричинаОтклонения КАК ПерваяПричина,
	
	Т2.ДатаПостановки    КАК ПоследняяДатаПостановки,
	Т2.ЗаказEDI          КАК ПоследнийЗаказ,
	Т2.ПричинаОтклонения КАК ПоследняяПричина 
ИЗ 	
	(ВЫБРАТЬ
		МАКСИМУМ(Т.ДатаПостановки) КАК МаксДата,
		МИНИМУМ(Т.ДатаПостановки) КАК МинДата
	ИЗ
		РегистрСведений.УведомленияORDRSP КАК Т) КАК ВтДаты
		
	ВНУТРЕННЕЕ СОЕДИНЕНИЕ
		РегистрСведений.УведомленияORDRSP КАК Т1
	ПО
		ВтДаты.МаксДата = Т1.ДатаПостановки
		
	ВНУТРЕННЕЕ СОЕДИНЕНИЕ
		РегистрСведений.УведомленияORDRSP КАК Т2
	ПО
		ВтДаты.МинДата = Т2.ДатаПостановки
Показать
+
36. LOTR 26.04.19 13:28 Сейчас в теме
(35)Все уже сделал, немного на другом завис)), спасибо, там оказалось все проще
+
33. LOTR 26.04.19 12:38 Сейчас в теме
ВЫБРАТЬ
	УведомленияORDRSP.ЗаказEDI,
	УведомленияORDRSP.ПричинаОтклонения КАК ПричинаОтклонения,
	ВложенныйЗапрос.ДатаОтправки,
	УведомленияORDRSP.ДатаОтправки КАК ДатаПервойОтправки
ИЗ
	(ВЫБРАТЬ
		МАКСИМУМ(УведомленияORDRSP.ДатаПостановки) КАК ДатаОтправки
	ИЗ
		РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP) КАК ВложенныйЗапрос
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP
		ПО УведомленияORDRSP.ДатаПостановки = ВложенныйЗапрос.ДатаОтправки
Показать
+
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот