Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Получить последние документы (число прочтений - 2168 )
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Получить последние документы
28. Апреля 2008 :: 06:32
Печать  
Нужно получить по списку материалов последние докуметы по которым они поступили. Не могу сообразить как кроме тупого перебора это сделать.
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Получить последние документы
Ответ #1 - 28. Апреля 2008 :: 06:48
Печать  
  
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Получить последние документы
Ответ #2 - 28. Апреля 2008 :: 07:18
Печать  
Там другая задача - получить мин цену.
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Получить последние документы
Ответ #3 - 28. Апреля 2008 :: 07:39
Печать  
Что-то типа такого:

Код
Выбрать все
SELECT
	ЖурналДокументов.идДок13 идПоследнийДок13,
	Документы.Товар идТовар
FROM
	ЖурналДокументов
	RIGHT JOIN
	(
		SELECT
			докПриходнаяНакладнаяТЧ.Товар Товар,
			Max(ЖурналДокументов.Date_Time_IDDOC) Позиция
		FROM
			докПриходнаяНакладнаяТЧ
			LEFT JOIN спрНоменклатура On спрНоменклатура.ID = докПриходнаяНакладнаяТЧ.Товар
			LEFT JOIN ЖурналДокументов On ЖурналДокументов.IDDOC = докПриходнаяНакладнаяТЧ.IDDOC
		Where
			ЖурналДокументов.Closed&1 = 1
		GROUP BY
			докПриходнаяНакладнаяТЧ.Товар
	) Документы On Документы.Позиция = ЖурналДокументов.Date_Time_IDDOC

 

  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Получить последние документы
Ответ #4 - 28. Апреля 2008 :: 07:59
Печать  
А вот это выражение работает?
Max(ЖурналДокументов.Date_Time_IDDOC)

Вот такой запрос по идее должен выдать последний документ поступления, но выдает все подряд.

|SELECT 
|ДокР.IDdoc as [ПоступлениеМатериалов $Документ.ПоступлениеМатериалов]
|,MAX(Жур.Date_Time_IDDoc)as СвежаяДата
|FROM
|...
|WHERE
|...
|GROUP BY
|ДокР.IDdoc
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Получить последние документы
Ответ #5 - 28. Апреля 2008 :: 08:02
Печать  
RuporAbsurda писал(а) 28. Апреля 2008 :: 07:59:
А вот это выражение работает?
Max(ЖурналДокументов.Date_Time_IDDOC)


Разумеется, работает.

RuporAbsurda писал(а) 28. Апреля 2008 :: 07:59:
Вот такой запрос по идее должен выдать последний документ поступления, но выдает все подряд.

|SELECT  
|ДокР.IDdoc as [ПоступлениеМатериалов $Документ.ПоступлениеМатериалов]
|,MAX(Жур.Date_Time_IDDoc)as СвежаяДата
|FROM
|...
|WHERE
|...
|GROUP BY
|ДокР.IDdoc


Такой запрос и должен выдавать все документы. Ты пытаешься им выдать максимальную позицию у каждого ДокР.IDdoc. А она, разумеется, одна.
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Получить последние документы
Ответ #6 - 28. Апреля 2008 :: 08:16
Печать  
Да, действительно. Спасибо.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать