|
v7: SQL по разным справочникам | ☑ | ||
---|---|---|---|---|
0
Lacoster
20.06.13
✎
06:37
|
Всем привет!
Есть справочник наценочная таблица. В нём есть группы по магазинам (иерархия) и оптовая цена. Суть справочника в том что у номенклатуры есть свойства и группы. На примере. Шина в закупе 1000р. Шина принадлежит группе "Грузовые Шины". в наценочной таблице есть такая группа и коэффициент для этой группы 1.2 Получается выставляю цену 1000*1.2=1200. Собственно я переоцениваю Опт. Из наценочной таблицы я достал таблицу из групп товаров и коэффициентов вот так |SELECT $НаценочнаяТаблица.ГруппаТовара [ГруппаТовара $Справочник] | , $НаценочнаяТаблица.УчБуквы НеУчБуквы | , $ПоследнееЗначение.НаценочнаяТаблица.Коэффициент(НаценочнаяТаблица.ID, :ВыбДата) Коэффициент | , НаценочнаяТаблица.Code Код | , НаценочнаяТаблица.ID [Ссылка $Справочник.НаценочнаяТаблица] | , $НаценочнаяТаблица.ИзПрайса [ИзПрайс $Справочник] |,$ВидСправочника36.НаценочнаяТаблица Вид |FROM $Справочник.НаценочнаяТаблица AS НаценочнаяТаблица With (NOLOCK) |left outer join $Справочник.НаценочнаяТаблица Лайк on НаценочнаяТаблица.PARENTID = Лайк.ID | AND Лайк.Code like '%Опт%' | AND НаценочнаяТаблица.IsMark = 0 Отработало без ошибок. Но мне необходимо наложить ещё одно условие типо |WHERE |$НаценочнаяТаблица.ГруппаТовара=:ВыбГрТовара Но фишка в том что $НаценочнаяТаблица.ГруппаТовара это просто справочник (т.к. там могут быть не только группы товара (шины грузовые), но и может быть её разные свойства (в общей сложности в этом реквезите хранится около 5 справочников), а :ВыбГрТовара это справочник ГруппыТовара. Как мне выбрать только то что мне нужно? |
|||
1
Lacoster
20.06.13
✎
06:39
|
добавлял ещё одно пересечение, не помогло
|left outer join $Справочник.ГруппаТовара ГруппаТовара on ГруппаТовара.ID=$НаценочнаяТаблица.ГруппаТовара | And ГруппаТовара.ID= :ВыбГрТовара |
|||
2
Rie
20.06.13
✎
06:40
|
(0)
WHERE $НаценочнаяТаблица.ГруппаТовара = :ВыбГрТовара~ |
|||
3
Lacoster
20.06.13
✎
06:43
|
сработало, но сработало по всей таблице, а мне нужно только из Опта
|
|||
4
Rie
20.06.13
✎
06:44
|
(3)
WHERE $Лайк.ГруппаТовара = :ВыбГрТовара~ |
|||
5
Lacoster
20.06.13
✎
06:46
|
Отработало, но ничего не показал. Хотя нужная мне группа в таблице есть
|
|||
6
Rie
20.06.13
✎
06:49
|
(5) "Опт" - точно в коде, а не в наименовании?
И почему left join, а не inner join? |
|||
7
Lacoster
20.06.13
✎
06:50
|
(2) вот это сработало. Но он вывел мне коэффициенты для всех магазинов включая Опт. Вывел 3 результата. Мб уже на это наложить условие что бы коэффициент был именно из опта?
|
|||
8
pervakovanton
20.06.13
✎
06:50
|
может ССЫЛКА?
|
|||
9
Lacoster
20.06.13
✎
06:51
|
(6) Опт точно в коде, могу скрин кинуть. А лефт джоин к чему относится? к лайку или к справочнику.ГруппыТовара?
|
|||
10
Lacoster
20.06.13
✎
06:51
|
(8) что ссылка?
|
|||
11
Lacoster
20.06.13
✎
06:54
|
Всё, разобрался!
Убрал из условия с пересечением Опт и добавил в Вере |WHERE |$НаценочнаяТаблица.ГруппаТовара=:ВыбГрТовара~ |AND Лайк.Code like '%Опт%' Выдал то что нужно. Спасибо Rie за тильду |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |