v7: 1с++ Срез последних #774752


#0 by palpetrovich
Что-то типа: select TOP 1     К.ИдентификаторСтрокиТаблицы from Константы К (nolock) Order by К.Дата Desc Только хотелось-бы для всех товаров...
#1 by Карупян
делай этот запрос на месте поля
#2 by palpetrovich
да я как-то так пробовал select     СП.Наименование     ,К.ИдентификаторСтрокиТаблицы     ,К.Дата     ,(select TOP 1         КК.Значение     from Константы КК (nolock)     ) Значение from Константы К (nolock)     inner join Справочник_Товары СП (nolock) on СП.ИдЭлемента = К.ИдОбъекта но получаю не "срез", более одного значения получаю
#3 by palpetrovich
поехал домойЮ может в дороге мысль стукнется ...но на Вас надежды больше :)
#4 by Карупян
конечно у тебя отбор по ид
#5 by Rie
Что-то было вроде$ПоследнееЗначение.Константа.Идентификатор(Объект,Дата)
#6 by varelchik
В точку. Учите матчасть
#7 by palpetrovich
не, не в точку, мне собсвенно не само значение нужно, мне как результат нужна временная таблица "срез последних на дату"
#8 by Mikeware
ты именно это и получишь...
#9 by palpetrovich
да ладно а хотел, как минимум "ИдентификаторСтрокиТаблицы,Дата,Ид,ИдОбъекта"
#10 by palpetrovich
в общем получилось впроде, но боюсь, через ж.пу :) ...покритикуйте если что     СП.Наименование     ,(select TOP 1         КК.ИдентификаторСтрокиТаблицы         from Константы КК (nolock)     ) ИдентификаторСтрокиТаблицы from Справочник_Товары СП (nolock)     AND     (select TOP 1         КК.ИдентификаторСтрокиТаблицы         from Константы КК (nolock)         Order by КК.Дата Desc     ) IS NOT NULL
#11 by King-SD
Прошу прощения, что пишу сюда (Ибо больше никуда не могу написать),, не могу создать тему, выскакивает ошибка - ОШИБКА: Ошибка Field 'last_modified' doesn't have a default value при добавлении новой темы! Не можете подсказать в чём проблема? Пробовал не на одном компьютере
#12 by Ёпрст
>>>а хотел, как минимум "ИдентификаторСтрокиТаблицы,Дата,Ид,ИдОбъекта" И зачем это ? Если ты всё это и так знаешь - ибо передаешь в коррелированный подзапрос ?
#13 by Ёпрст
нуи rowid знать, вообще не понятно для чего
#14 by palpetrovich
Мне нужно получить срезПоследних на дату и закинуть все это во временную таблицу. Соственно для чего - удалить все до этого среза. Думаю в ВТ_ЗначенийКоторыеОтсаются должны быть "ИдентификаторСтрокиТаблицы,Дата,Ид,ИдОбъекта"
#15 by palpetrovich
+  хотя, моэет достаточно ИдентификаторСтрокиТаблицы Если далее удалять с условиями из + условие на исключение из удаляемых по ИдентификаторСтрокиТаблицы ВТ
#16 by FN
нашел в закромах... Удаляет все до указанной даты, оставляя только одно, самое свежее значение.
#17 by FN
... ТЗРеквизитов.НоваяКолонка("Реквизит",,,,,24); - Строка ...
#18 by palpetrovich
Спасибо конечно, но запрос в цикле - как-то не комильфо :)
#19 by Ёпрст
для этого 1) не нужна временная таблица 2)не нужна rowid 3) нужен просто запрос на delete по условию. Усё.
#20 by palpetrovich
просто запрос мне пока не под силу вот что получилось и это работает ...но глаз режет :) if object_id(N'tempdb..#SrezNaDaty', N'U') is not null    drop table #SrezNaDaty select top 100     (select TOP 1         КК.ИдентификаторСтрокиТаблицы         from Константы КК (nolock) into #SrezNaDaty from Справочник_Товары СП (nolock)     AND         (select TOP 1         КК.ИдентификаторСтрокиТаблицы         from Константы КК (nolock)         Order by КК.Дата Desc     ) IS NOT NULL delete from Константы where ИдентификаторСтрокиТаблицы in     (select         КК.ИдентификаторСтрокиТаблицы         from Константы КК (nolock)     )     AND ИдентификаторСтрокиТаблицы not in (select Srez.ИдентификаторСтрокиТаблицы from #SrezNaDaty Srez)                      if object_id(N'tempdb..#SrezNaDaty', N'U') is not null    drop table #SrezNaDaty
#21 by Ёпрст
нахрена вот так писать ? >>> КК.Ид = 192  ? да и выкини классы, пиши по-русски, используя обычный метапарсер. Намного читаемый текст запроса будет. + почему топ-100 ? остальное не надоть ?
#22 by FN
согласен. Но тут все просто - время работы обработки в данном случае не критично, поскольку операция разовая. А вот время работы программиста стоит денег.
#23 by palpetrovich
КК.Ид = 192 - это для отладки, там будет передаваемый ы хранимую процедуру параметр КК.Ид = @ИдПериодики топ-100 - тоже для отладки "выкини классы" - если речь про "ИдентификаторСтрокиТаблицы" и т.д., то это не классы, это представления (так называемые вьюхи). У нас в конторе все через них  пишется
#24 by Ёпрст
и нафига вьюхи использовать ? Для каждой базы свои вьюхи лепите ?
#25 by palpetrovich
ну да, так сложилось. СофтПоинт стотыщ лет назад их внедрял и оставил инструмент для создангия новых и обовления старых
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С