![]() |
![]() |
|
Помогите с запросом | ☑ | ||
---|---|---|---|---|
0
lanc2233
24.01.13
✎
23:28
|
Нужно получить список номенклатуры с дополнительными реквизитами, которые хранятся в регистре сведений.
Пытаюсь так : ВЫБРАТЬ ЗначениеСвойствНоменклатуры.Номенклатура.Ссылка КАК Товар, ВЫБОР КОГДА ЗначениеСвойствНоменклатуры.ВидСвойства = &К1 ТОГДА ЗначениеСвойствНоменклатуры.Значение КОНЕЦ КАК К1, ВЫБОР КОГДА ЗначениеСвойствНоменклатуры.ВидСвойства = &К2 ТОГДА ЗначениеСвойствНоменклатуры.Значение КОНЕЦ КАК К2, ЗначениеСвойствНоменклатуры.ВидСвойства ИЗ Справочник.Номенклатура КАК НОМ ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначениеСвойствНоменклатуры КАК ЗначениеСвойствНоменклатуры ПО НОМ.Ссылка = ЗначениеСвойствНоменклатуры.Номенклатура ГДЕ НОМ.Ссылка В ИЕРАРХИИ(&Группа) И ЗначениеСвойствНоменклатуры.ВидСвойства В(&СпВидСВ) В итоге получаю на каждую позицию по две строки. В одной заполнено К1, в другой заполнено К2. Как написать чтобы на одну позицию была одна строка? |
|||
1
Classic
24.01.13
✎
23:29
|
Два раза соединять.
|
|||
2
Beduin
24.01.13
✎
23:29
|
К1 и К2 тут ни при чем, видимо в регистре сведений по две записи на каждую номенклатуру
|
|||
3
Beduin
24.01.13
✎
23:31
|
А так тут группировать по номенклатуре
|
|||
4
Fragster
гуру
24.01.13
✎
23:31
|
(1)+1. или свернуть и Максимум
|
|||
5
Fragster
гуру
24.01.13
✎
23:31
|
(2) ага, одна - с одним свойством, другая - с другим...
|
|||
6
lanc2233
24.01.13
✎
23:33
|
Да, на каждое допсвойство по одной записи. Так что лучше сделать?
|
|||
7
Fragster
гуру
24.01.13
✎
23:34
|
(6) пофиг что
|
|||
8
Classic
24.01.13
✎
23:36
|
(6)
Шикарно в шестом посте спрашивать "так что сделать", учитывая, что в первых 5 ответах было уже два варианта (4) А что максимум с нулом даст? (0) И вообще, что за привычка писать ВЫБОР без ИНАЧЕ |
|||
9
lanc2233
24.01.13
✎
23:36
|
Может написать как будет выглядеть блок с соединениями?
|
|||
10
lanc2233
24.01.13
✎
23:36
|
Может = можете
|
|||
11
Fragster
гуру
24.01.13
✎
23:37
|
(8) нул меньше всего
|
|||
12
Fragster
гуру
24.01.13
✎
23:37
|
ну и нул можно заменить на 0 или неопределено
|
|||
13
lanc2233
25.01.13
✎
00:05
|
Можете написать как будет выглядеть блок с соединениями?
|
|||
14
Classic
25.01.13
✎
00:14
|
Нужно получить список номенклатуры с дополнительными реквизитами, которые хранятся в регистре сведений.
ВЫБРАТЬ ЗначениеСвойствНоменклатуры.Номенклатура.Ссылка КАК Товар, ЗначениеСвойствНоменклатуры1.Значение КАК К1, ЗначениеСвойствНоменклатуры2.Значение КАК К2, ЗначениеСвойствНоменклатуры.ВидСвойства ИЗ Справочник.Номенклатура КАК НОМ ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначениеСвойствНоменклатуры КАК ЗначениеСвойствНоменклатуры1 ПО НОМ.Ссылка = ЗначениеСвойствНоменклатуры1.Номенклатура И ЗначениеСвойствНоменклатуры1.ВидСвойства = &К1 ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначениеСвойствНоменклатуры КАК ЗначениеСвойствНоменклатуры2 ПО НОМ.Ссылка = ЗначениеСвойствНоменклатуры2.Номенклатура И ЗначениеСвойствНоменклатуры2.ВидСвойства = &К2 ГДЕ НОМ.Ссылка В ИЕРАРХИИ(&Группа) |
|||
15
sapphire
25.01.13
✎
00:15
|
(0) Запрос глупо написан:
ЗначениеСвойствНоменклатуры.ВидСвойства В(&СпВидСВ) , значит &К1 и &К2 должны принадлежать &СпВидСВ Если поле ВидСвойства в РегистрСведений.ЗначениеСвойствНоменклатуры инедексировано, тогда лучше использовать ОБЪЕДИНИТЬ ВСЕ ЗначениеСвойствНоменклатуры.ВидСвойства в выборке по-любому приведет к множественности, как ни крути. |
|||
16
sapphire
25.01.13
✎
00:16
|
(14) Это не совсем то...
Но, отчасти так. Еще раз, Если поле ВидСвойства в РегистрСведений.ЗначениеСвойствНоменклатуры индексировано, тогда лучше использовать ОБЪЕДИНИТЬ ВСЕ |
|||
17
Classic
25.01.13
✎
00:16
|
(14)
Вот эту фигню ЗначениеСвойствНоменклатуры.ВидСвойства Надо убрать из запроса |
|||
18
Classic
25.01.13
✎
00:17
|
(16)
Твое ОБЪЕДИНИТЬ ВСЕ одну результирующую строчку никак не даст. А ТС попросил одну |
|||
19
sapphire
25.01.13
✎
00:17
|
(17) Мы ж не заем, надо ему убрать это или нет
|
|||
20
Classic
25.01.13
✎
00:18
|
(19)
Надо :) |
|||
21
sapphire
25.01.13
✎
00:19
|
(20) Ну, я, лично, не знаю :)
|
|||
22
sapphire
25.01.13
✎
00:19
|
(18) Потом агрегировать
|
|||
23
sapphire
25.01.13
✎
00:20
|
Подзапрос с Union all & inner join, потом агрегат MAX по K1,K2
|
|||
24
Classic
25.01.13
✎
00:22
|
(23)
Зачем Юнион, если агрегировать можно и то, что написано в (0)? |
|||
25
sapphire
25.01.13
✎
00:23
|
+(23) в (15)(16) подразумевалось наличие мозга у писателя запроса. Просто идея задействовать индекс.
|
|||
26
lanc2233
25.01.13
✎
00:23
|
Спасибо, работает )
|
|||
27
sapphire
25.01.13
✎
00:23
|
(24) см (23)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |