Имя: Пароль:
1C
1С v8
запрос: последние 5 приходов для каждой номенклатуры из документа
,
0 lubja
 
22.01.12
16:55
задача: из реализации печатать одну штуковину. фишка этой штуковины - для каждой позиции номенклатуры выводить даты последних 5 приходных.
задача решена, но с помощью скд. в компановке такое можно легко решить, а не прибегая к скд, с помощью обычного запроса реально?
просто интересно стало, каким будет запрос...
1 Wobland
 
22.01.12
16:59
выбрать первые 5 упорядочить по дате убыв?
2 Wobland
 
22.01.12
17:00
(0) смени фото, ты же красивая, я помню ;)
3 lubja
 
22.01.12
17:03
(1) ну и что тебе вернется в результате упорядочивания и выбирания первых 5?
нужно видеть в результате такую картину:

Номенклатура1   Дата1
               Дата2
               Дата3
               Дата4
               Дата5
Номенклатура2   Дата1
               Дата2
               Дата3
               Дата4
               Дата5
Номенклатура3   Дата1
               Дата2
               Дата3
               Дата4
               Дата5

и т.д...
4 Wobland
 
22.01.12
17:06
ну можно ж сделать таблицу по приходу номенклатуры. и соединиться с ней
5 lubja
 
22.01.12
17:08
(4) давай по-порядку ))) вот я выбрала приходы только той номенклатуры, что мне нужна. что дальше?

ЗЫ: сменила ;)
6 Wobland
 
22.01.12
17:10
(5) нет, я верю - красивая. была
7 Wobland
 
22.01.12
17:11
(5) возьми у них дату и (0) решено. или я чего-то не догоняю?
8 lubja
 
22.01.12
17:16
(7) давай для простоты возьмем не даты приходов, а сами приходы. вот я выбираю все(!) приходы только той номенклатуры, что в реализации. вот она, вся в таблице вперемешку за все ***ндцать лет. теперь мне нужно по каждой(!) позиции отобрать только последние 5. сдается мне - это не просто упорядочить и выбрать 5...
9 Шурик71
 
22.01.12
17:16
(4) "Первые 5" в соединениях совсем не в дугу.

(0) Можно, но муторно.. напишу суть.

Выбрать расход.Номенклатура, Максимум(приход.дата) КАК Дата1
поместить вт1
из Документ.Расходная.Товары как расход  
Левое соединение  Документ.Приходная.Товары как приход
по расход.Номенклатура = Приход.Номенклатура
Сгруппировать по расход.Номенклатура
;
//
выбрать  вт1.Номенклатура, вт.Дата1, Максимум(приход.дата)КАК Дата2
Левое соединение  Документ.Приходная.Товары как приход
по вт1.Номенклатура = Приход.Номенклатура И приход.Дата < вт1.Дата1
Сгруппировать по вт1.Номенклатура

....

и т.д.
10 mdocs
 
22.01.12
17:19
ВЫБРАТЬ
   ПоступлениеТоваровУслугТовары.Номенклатура,
   ПоступлениеТоваровУслугТовары.Ссылка.Дата,
   КОЛИЧЕСТВО(ПоступлениеТоваровУслугТовары.Ссылка.Дата) КАК Колво
ПОМЕСТИТЬ ВТтовары
ИЗ
   Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары

СГРУППИРОВАТЬ ПО
   ПоступлениеТоваровУслугТовары.Номенклатура,
   ПоступлениеТоваровУслугТовары.Ссылка.Дата
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТтовары.Номенклатура КАК Номенклатура,
   ВТтовары.Дата КАК Дата,
   ВТтовары.Колво
ПОМЕСТИТЬ ВТ1
ИЗ
   ВТтовары КАК ВТтовары
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТ1.Номенклатура КАК Номенклатура,
   ВТ1.Дата КАК Дата,
   СУММА(ВТ2.Колво) КАК Колво
ИЗ
   ВТ1 КАК ВТ1
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ1 КАК ВТ2
       ПО ВТ1.Номенклатура = ВТ2.Номенклатура
           И ВТ1.Дата <= ВТ2.Дата

СГРУППИРОВАТЬ ПО
   ВТ1.Номенклатура,
   ВТ1.Дата

ИМЕЮЩИЕ
   СУММА(ВТ2.Колво) < 6

УПОРЯДОЧИТЬ ПО
   Номенклатура,
   Дата УБЫВ


вроде так
11 Шурик71
 
22.01.12
17:19
ну естественно вместо приход.дата будет isnull(приход.ссылка.дата,ДатаВремя(1,1,1))
12 lubja
 
22.01.12
17:19
(9) т.е. сколько мне нужно последних дат, столько будет и виртуальных таблиц с МАКСИМУМ(дата) ?
13 Шурик71
 
22.01.12
17:20
(12) да
14 lubja
 
22.01.12
17:22
(13) значит, я правильно сделала, что через скд... спасибо за ответ ))
15 Wobland
 
22.01.12
17:29
(14) спасибо за фото, весь боюсь
16 lubja
 
22.01.12
17:32
(10) хм... и этот запрос работает... благодарю! )))
17 lubja
 
22.01.12
17:33
(15) а чо бояться-то? ;)
18 Wobland
 
22.01.12
17:36
(17) Лен, женская красота как-то по-другому должна выглядеть
19 lubja
 
22.01.12
17:40
(18) ну, ладно... уговорил... возвращаю старые фотки на базу ((
20 Wobland
 
22.01.12
17:43
(19) во! опять красавица
21 Fragster
 
гуру
22.01.12
17:47
на СКД через 2 источника данных, соединенных по параметру - легко делается
22 Wobland
 
22.01.12
17:49
(21) вопрос был не в этом, вопрос был, как без СКД
23 Fragster
 
гуру
22.01.12
17:50
(22) без СКД - коррелирующими запросами, но черезжопно. чем СКД не устраивает?
24 lubja
 
22.01.12
17:52
(23) читаем внимательнее - "просто интересно стало, каким будет запрос..." )))
я и сделала с скд, легко и не напрягаясь...
25 lubja
 
22.01.12
17:53
(20) дык, и была красавицей, тока "лысой" )) разве нет? =)
26 Wobland
 
22.01.12
17:56
(25) ладно, я у себя начал замечать признаки лысения, но лысая жена - лучше отравиться ;)
27 lubja
 
22.01.12
17:59
(26) открою тебе маленький секрет - лысина не настоящая! ;) тока тцссс! никому ни слова! ))
28 Wobland
 
22.01.12
18:01
(27) спасибо, полегчало ;)
29 Wobland
 
22.01.12
18:03
а вообще, была же фотка, где ты в юбке (самая первая для меня). она и сделала впечатление очень красавицы. //я правда похож на сексманьяка? ;)
30 lubja
 
22.01.12
18:04
(29) я там рыжая?
31 Wobland
 
22.01.12
18:06
(30) ахха. в чёрном кожаном пальто
32 lubja
 
22.01.12
18:09
(31) кароче, на сегодня эта последняя! )) не понравилась эта - фантазируй!)))
33 Wobland
 
22.01.12
18:15
пальто на месте, юбка на месте, спасибо, драгоценная, уже весь изфантазировался ;) //не принимай всерьёз, у меня сегодня ДР, уже принял
34 lubja
 
22.01.12
18:16
(33) поздравляю!!! :-*
35 Wobland
 
22.01.12
18:18
(34) ай, спасибо, хорошо ;)
36 lubja
 
22.01.12
18:18
(35) а ты чо в свой др на мисте сидишь?! заняться больше нечем?! ))
37 Wobland
 
22.01.12
18:19
(36) завтра на работу, поэтому на мисте я не сидел вчера ;)
38 lubja
 
22.01.12
18:24
ладно, пошла пирожки лепить... еще с др!)
39 Fragster
 
гуру
23.01.12
10:32
ВЫБРАТЬ
   СпрНоменклатура.Ссылка КАК Номенклатура
ПОМЕСТИТЬ Ном
ИЗ
   Справочник.Номенклатура КАК СпрНоменклатура
ГДЕ
   СпрНоменклатура.Ссылка = &Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ПоступлениеТоваровТовары.Ссылка,
   ПоступлениеТоваровТовары.Ссылка.Дата КАК Дата,
   ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ Доки
ИЗ
   Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Ном КАК Ном
       ПО ПоступлениеТоваровТовары.Номенклатура = Ном.Номенклатура
ГДЕ
   ПоступлениеТоваровТовары.Ссылка.Проведен = &Проведен

ИНДЕКСИРОВАТЬ ПО
   Номенклатура,
   Дата
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Ном.Номенклатура,
   Доки.Ссылка КАК Док,
   Доки.Дата
ПОМЕСТИТЬ Результат
ИЗ
   Ном КАК Ном
       ЛЕВОЕ СОЕДИНЕНИЕ Доки КАК Доки
       ПО Ном.Номенклатура = Доки.Номенклатура
           И (Доки.Ссылка В
               (ВЫБРАТЬ ПЕРВЫЕ 5
                   ТМП.Ссылка
               ИЗ
                   ДОки КАК ТМП
               ГДЕ
                   ТМП.Номенклатура = Доки.Номенклатура
               УПОРЯДОЧИТЬ ПО
                   ТМП.Дата УБЫВ))
40 lubja
 
23.01.12
10:35
(39) всю ночь не спал, думал о запросе? :)
41 Fragster
 
гуру
23.01.12
10:41
(40) не, протрезвел тока
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.