|
запрос - как организовать соединение | ☑ | ||
---|---|---|---|---|
0
Dirk Diggler
07.02.12
✎
18:15
|
Надо выбрать все товары из реализации товаров и услуг и подобрать к ним к каждой строчке по 1 месту хранения товаров, по приоритету. Делаю левое соединение с РС местахранения, но не знаю, как отбросить лишние строки
|ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестаХраненияНоменклатуры КАК МестаХраненияНоменклатуры | ПО (МестаХраненияНоменклатуры.Номенклатура = РеализацияТоваровУслугТовары.Номенклатура) | И (МестаХраненияНоменклатуры.Склад = РеализацияТоваровУслугТовары.Ссылка.Склад) |
|||
1
Wobland
07.02.12
✎
18:15
|
а что такое приоритет?
|
|||
2
acsent
07.02.12
✎
18:15
|
как приоритет задается?
|
|||
3
Dirk Diggler
07.02.12
✎
18:16
|
приоритет - поле такое в РС местахранения. числом целым задается.
|
|||
4
Wobland
07.02.12
✎
18:18
|
ну.. сделай таблицу с максимальным приоритетом по складу и номенклатуре и с ней соединяй
|
|||
5
Wobland
07.02.12
✎
18:19
|
или
ИМЕЮЩИЕ МАКСИМУМ(Приоритет) - как-то так. это в итогах |
|||
6
Dirk Diggler
07.02.12
✎
18:20
|
(4) как сделать-то?
(5) Выкинет часть строчек исходной таблицы Товаров, у мест хранения которых приоритет другой. |
|||
7
Rovan
гуру
07.02.12
✎
18:22
|
(6) ЛЕВОЕ СОЕДИНЕНИЕ ( ВЫБРАТЬ
МАКСИМУМ(МестаХраненияНоменклатуры.Приоритет), МестаХраненияНоменклатуры.Номенклатура ИЗ РегистрСведений.МестаХраненияНоменклатуры КАК МестаХраненияНоменклатуры ... |
|||
8
Wobland
07.02.12
✎
18:23
|
(7) ну выбереть тебе один максимум на весь регистр...
что-то я потерялся |
|||
9
Dirk Diggler
07.02.12
✎
18:27
|
(7) Вот так если сделать, что попадет в поле МестоХранения:
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | МестаХраненияНоменклатуры.Номенклатура КАК Номенклатура, | МестаХраненияНоменклатуры.МестоХранения КАК МестоХранения, | МестаХраненияНоменклатуры.Склад КАК Склад, | МИНИМУМ(МестаХраненияНоменклатуры.Приоритет) КАК Приоритет | ИЗ | РегистрСведений.МестаХраненияНоменклатуры КАК МестаХраненияНоменклатуры | | СГРУППИРОВАТЬ ПО | МестаХраненияНоменклатуры.Склад, | МестаХраненияНоменклатуры.МестоХранения, | МестаХраненияНоменклатуры.Номенклатура) |
|||
10
Dirk Diggler
07.02.12
✎
18:27
|
&
|
|||
11
Rovan
гуру
07.02.12
✎
18:34
|
(7) вот как нужно
ЛЕВОЕ СОЕДИНЕНИЕ ( ВЫБРАТЬ МАКСИМУМ(МестаХраненияНоменклатуры.Склад.Приоритет) как МаксПриритет, МестаХраненияНоменклатуры.Номенклатура ИЗ РегистрСведений.МестаХраненияНоменклатуры КАК МестаХраненияНоменклатуры ) КАК Приоритеты ПО Приоритеты.Номеклатура = РеализацияТоваровУслугТовары.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестаХраненияНоменклатуры КАК МестаХраненияНоменклатуры | ПО (МестаХраненияНоменклатуры.Номенклатура = Приоритеты.Номеклатура) | И (МестаХраненияНоменклатуры.Склад.Приоритет = Приоритеты.МаксПриритет) |
|||
12
Rovan
гуру
07.02.12
✎
18:35
|
(11) там в 1м подзапросе еще надо
СГРУППИРОВАТЬ ПО МестаХраненияНоменклатуры.Номенклатура |
|||
13
Жан Пердежон
07.02.12
✎
18:38
|
как-то так
... ЛЕВОЕ СОЕДИНЕНИЕ (Выбрать Номенклатура, МАКСИМУМ(Склад) из РС.МестаХранения КАК РС1 ГДЕ Приоритет<=(Выбрать Максимум(Приоритет) ИЗ РС.МестаХранения КАК РС2 ГДЕ РС2.Номенклатура = РС1.Номенклатура) СГРУППИРОВАТЬ ПО Номенклатура) ... |
|||
14
Жан Пердежон
07.02.12
✎
18:39
|
только = вместо <=
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |