Имя: Пароль:
1C
 
Агрегатная функция МАКСИМУМ от ссылки
0 mrWatson
 
27.02.09
11:20
Внимание запрос:

ВЫБРАТЬ
   МАКСИМУМ(трнБюджетнаяОперацияТЧ.Ссылка) КАК Ссылка,
   трнБюджетнаяОперацияТЧ.Статья КАК Статья
ИЗ
   Документ.трнБюджетнаяОперация.ТЧ КАК трнБюджетнаяОперацияТЧ
ГДЕ
   трнБюджетнаяОперацияТЧ.Ссылка.Проведен = ИСТИНА

СГРУППИРОВАТЬ ПО
   трнБюджетнаяОперацияТЧ.Статья

Хочется видеть по каждой статье последний документ в ТЧ которго она встречалась. Возвращает какой-то промежуточный документ не понятно по какой логике. Как это лечить?
1 НЕА123
 
27.02.09
11:24
вариант
МАКСИМУМ(трнБюджетнаяОперацияТЧ.МОМЕНТВРЕМЕНИ) КАК МОМЕНТ,
потом оттуда ссылку выковыривать.
2 Sadovnikov
 
27.02.09
11:24
(0) Ай молодца! Ты бы хоть глянул в базе, что именно из себя эта ссылка представляет. И от чего ты пытаешься максимум получить.
3 НЕА123
 
27.02.09
11:25
МАКСИМУМ(трнБюджетнаяОперацияТЧ.ССЫЛКА.МОМЕНТВРЕМЕНИ) КАК МОМЕНТ,
4 mrWatson
 
27.02.09
11:27
(3) этот запрос есть часть общего запроса потом по ссылке идет СОЕДИНЕНЕИ таблиц, можно ли в запросе из момента времени "выковырять" ссылку и по ней соединять? т.е. можно будет написать Момент.Ссылка=ДругаяСылка в запросе?
5 НЕА123
 
27.02.09
11:31
Момент=ДругаяСылка.МоментВремени - должно прокатить.
6 Sadovnikov
 
27.02.09
11:33
(5) Блин, ну неужели так трудно перед тем, как что-то начинать кодить, описание языка прочитать???
7 mrWatson
 
27.02.09
11:49
(6) Подскажите как выйти из данной ситуации. МоментВремени в данном случае не помогает.
8 Sadovnikov
 
27.02.09
11:50
(7) Вот честно, в данном случае я считаю, что человеку надо давать не рыбу, а удочку. Тоесть, отправить к первоисточникам: ЖКК и BOL SQL. Иначе пользы никакой не будет.
9 mrWatson
 
27.02.09
11:53
(8) дайте рыбу, олбещаю проштудировать "SQL for dummies" на выходных.
10 Sadovnikov
 
27.02.09
12:09
(9) Медитируй:
Select
   докТЧ.Ссылка Документ
From
(
   Select
       Max(Док.Дата) МаксДата,
       докТЧ.ПричинаЗакрытияЗаказа Причина
   From Документ.ЗакрытиеЗаказовПоставщикам.Заказы докТЧ
   Left Join Документ.ЗакрытиеЗаказовПоставщикам Док On докТЧ.Ссылка = Док.Ссылка
   Group By докТЧ.ПричинаЗакрытияЗаказа
) МаксДаты
Left Join Документ.ЗакрытиеЗаказовПоставщикам Док On Док.Дата = МаксДаты.МаксДата
Left Join Документ.ЗакрытиеЗаказовПоставщикам.Заказы докТЧ On докТЧ.Ссылка = Док.Ссылка And МаксДаты.Причина = докТЧ.ПричинаЗакрытияЗаказа
11 mrWatson
 
27.02.09
12:15
я кстати параллельно смедитировал похоже но у вас сложнее немного, всеравно спасибо:


ВЫБРАТЬ
   ВложЗапрос2.Статья,
   МАКСИМУМ(трнБюджетнаяОперация.Ссылка) КАК Ссылка
ИЗ
   (ВЫБРАТЬ
       МАКСИМУМ(трнБюджетнаяОперацияТЧ.Ссылка.Дата) КАК Дата,
       трнБюджетнаяОперацияТЧ.Статья КАК Статья
   ИЗ
       Документ.трнБюджетнаяОперация.ТЧ КАК трнБюджетнаяОперацияТЧ
   ГДЕ
       трнБюджетнаяОперацияТЧ.Ссылка.Проведен = ИСТИНА
   
   СГРУППИРОВАТЬ ПО
       трнБюджетнаяОперацияТЧ.Статья) КАК ВложЗапрос2
       ЛЕВОЕ СОЕДИНЕНИЕ Документ.трнБюджетнаяОперация КАК трнБюджетнаяОперация
       ПО ВложЗапрос2.Дата = трнБюджетнаяОперация.Дата

СГРУППИРОВАТЬ ПО
   ВложЗапрос2.Статья
12 mrWatson
 
27.02.09
12:15
точнее мне коллеги по цеху подсказали
13 Sadovnikov
 
27.02.09
12:19
(11) То же самое. Только я связывания явно прописал для лучшей читабельности кода.
Основная теорема систематики: Новые системы плодят новые проблемы.