|
Подскажите с соединением таблиц | ☑ | ||
---|---|---|---|---|
0
Double_Medved
21.02.13
✎
12:50
|
Подскажите пожалуйста, что-то какая-то ерунда, хотя задача простая.. Нужно сделать отчет, в котором будет 5 колонок: 1)Номенклатура 2)ее количество на складе 3) ее цена в виде цен "закупочная", 4)ее цена в виде цен "розничная" 5)процент - отношение этих цен. То есть нужно выводить цены только той номенклатуры, которая есть на складе. Может быть такое что цен нет, или есть только одна цена. делаю в СКД, пытаюсь сделать одним запросом. Таблицы все нашел. 1-я количество остатков, 2-я цена закупочная, 3-я цена розничная. Не пойму: Как их соединять? если делаю 1я левое соединение 2я, 1я левое соединение 3я, то какая-то ерунда, попадают цены вообще всей номенклатуры... То есть 1-я меньше 2-й и 3-й, и в 1-ю нужно добавить данные из 2-й и 3-й, подскажите пожалуйста как соединять.
|
|||
1
GLazNik
21.02.13
✎
12:54
|
(0) запрос покажи
|
|||
2
GANR
21.02.13
✎
12:55
|
Если (нужны нулевые остатки) тогда
присоедини к Справочник.Номенклатура слева остальные таблицы Иначе к РегистрНакопления.товарыНаСкладах КонецЕсли; вопросы? |
|||
3
GANR
21.02.13
✎
13:00
|
Если (нужны нулевые остатки) тогда
Справочник Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ Остатки, Цена1, Цена2 Иначе Остатки ЛЕВОЕ СОЕДИНЕНИЕ Цена1, Цена2 КонецЕсли; |
|||
4
Галахад
гуру
21.02.13
✎
13:02
|
(0) Запрос-то покажи.
|
|||
5
exwill
21.02.13
✎
13:03
|
Условие соединения у тебя какое?
|
|||
6
samozvanec
21.02.13
✎
13:03
|
гюльчатай, покажи запросик
|
|||
7
Double_Medved
21.02.13
✎
13:28
|
ВЫБРАТЬ
&Дата1 КАК Дата, ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура1, ТоварыНаСкладахОстатки.Склад, ТоварыНаСкладахОстатки.ВНаличииКонечныйОстаток, ЦеныНоменклатурыСрезПоследнихЗакупочная.ВидЦены КАК ВидЦены, ЦеныНоменклатурыСрезПоследнихЗакупочная.Номенклатура КАК Номенклатура, ЦеныНоменклатурыСрезПоследнихЗакупочная.Цена КАК Цена, ЦеныНоменклатурыСрезПоследнихРозничная.ВидЦены КАК ВидЦены1, ЦеныНоменклатурыСрезПоследнихРозничная.Номенклатура КАК Номенклатура2, ЦеныНоменклатурыСрезПоследнихРозничная.Цена КАК Цена1, ВЫБОР КОГДА (ВЫРАЗИТЬ(ЦеныНоменклатурыСрезПоследнихЗакупочная.Цена КАК ЧИСЛО(15, 2))) <> 0 ТОГДА ВЫРАЗИТЬ((ЦеныНоменклатурыСрезПоследнихРозничная.Цена - ЦеныНоменклатурыСрезПоследнихЗакупочная.Цена) / ЦеныНоменклатурыСрезПоследнихЗакупочная.Цена * 100 КАК ЧИСЛО(15, 2)) ИНАЧЕ 0 КОНЕЦ КАК Разница, ВЫРАЗИТЬ(ЦеныНоменклатурыСрезПоследнихРозничная.Цена * ТоварыНаСкладахОстатки.ВНаличииКонечныйОстаток КАК ЧИСЛО(15, 2)) КАК СуммаОстатка ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты({(&Дата)}, , , , ) КАК ТоварыНаСкладахОстатки ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних({(&Дата)}, ) КАК ЦеныНоменклатурыСрезПоследнихЗакупочная ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследнихЗакупочная.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних({(&Дата)}, ) КАК ЦеныНоменклатурыСрезПоследнихРозничная ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследнихРозничная.Номенклатура ГДЕ ТоварыНаСкладахОстатки.Склад = &Склад И ЦеныНоменклатурыСрезПоследнихЗакупочная.ВидЦены = &ВидЦены1 И ЦеныНоменклатурыСрезПоследнихРозничная.ВидЦены = &ВидЦены2 |
|||
8
MaxisUssr
21.02.13
✎
13:31
|
(0) Если отталкиваемся от номенклатуры, то
1. К таблице номенклатуры присоединяешь таблицу склада 2. К таблице номенклатуры присоединяешь таблицу цен первого типа 3. К таблице номенклатуры присоединяешь таблицу цен второго типа Если отталкиваемся от того, что есть на складе, то 1. К таблице склада присоединяешь таблицу номенклатуры 2. К таблице склада присоединяешь таблицу цен первого типа 3. К таблице склада присоединяешь таблицу цен второго типа |
|||
9
Double_Medved
21.02.13
✎
13:35
|
(8)я отталкиваюсь от номенклатуры... Как "К таблице номенклатуры присоединяешь таблицу цен первого
типа " - это ЛЕВОЕ или ПРАВОЕ СОЕДИНЕНИЕ или ОбЪЕДИНЕНИЕ или что? |
|||
10
Галахад
гуру
21.02.13
✎
13:36
|
(7) Условие склад сюды:
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты({(&Дата)}, , , , ) Условие ЦеныНоменклатурыСрезПоследнихЗакупочная.ВидЦены = &ВидЦены1 сюды: ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследнихЗакупочная.Номенклатура |
|||
11
GANR
21.02.13
✎
13:39
|
(7)(9)
ГДЕ ЦеныНоменклатурыСрезПоследнихЗакупочная.ВидЦены = &ВидЦены1 рубит остатки, по которым нет цены |
|||
12
MaxisUssr
21.02.13
✎
13:41
|
(9)
ВЫБРАТЬ ... ИЗ ТаблицаНоменклатуры ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаЦен |
|||
13
Рыцарь
21.02.13
✎
13:42
|
(10) верно говорит
|
|||
14
GANR
21.02.13
✎
13:46
|
(10) Цены лучше вообще до соединения во вложенном запросе нафильтровать, а не в условии соединения фильтр ставить - тормоза могут быть.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |