|
Помогите с объединением таблиц | ☑ | ||
---|---|---|---|---|
0
ColonelAp4u
25.05.20
✎
15:05
|
Добрый день форумчане, помогите с запросом, пол дня ищу решения ни как не могу разобраться.
Есть 2 таблицы Номенклатура Процент Приоритет и такая же Номенклатура Процент Приоритет но Ном1 20 1 Ном1 25 2 Ном2 20 1 Нужно выбрать только те у которых более высокий приоритет чтобы результат был Ном1 25 Ном2 20 Пробовал через объединение делать но если потом делать группировку максимум приоритет, а ном и процент в группировку то выходит 2 записи по ном1 |
|||
1
ColonelAp4u
25.05.20
✎
15:08
|
(0) кривая таблица вот скрин примера
https://imgur.com/a/qd6JcFu |
|||
2
ColonelAp4u
25.05.20
✎
15:10
|
думал может сделать через соединение, и уже в выборе процента прописать если приоритет больше чем тут тогда процент из таблицы 2 иначе из 1
|
|||
3
Ненавижу 1С
гуру
25.05.20
✎
15:13
|
1. Делает ОБЪЕДИНИТЬ обе таблицы. Полученную таблицу назову Базовая
2. БЫБРАТЬ Т.Номенклатура, Б.Процент (ВЫБРАТЬ Номенклатура, МАКСИМУМ(Приоритет) ИЗ Базовая СГРУППИРОВАТЬ ПО Номенклатура) КАК Т ЛЕВОЕ СОЕДИНЕНИЕ Базовая Б ПО (Т.Номенклатура=Б.Номенклатура) И (Т.Приоритет=Б.Приоритет) |
|||
4
ColonelAp4u
25.05.20
✎
15:18
|
(3) Со вторым пунктом не совсем понятно, можешь подробнее расписать?
|
|||
5
ColonelAp4u
25.05.20
✎
15:20
|
(3) Вот последняя выборка после объединения
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ИтогСложныйРасчет.Организация, ВТ_ИтогСложныйРасчет.Подразделение, ВТ_ИтогСложныйРасчет.Контрагент, ВТ_ИтогСложныйРасчет.Ссылка, ВТ_ИтогСложныйРасчет.Номенклатура, ВТ_ИтогСложныйРасчет.Сумма, ВТ_ИтогСложныйРасчет.ПроцентКомиссии, ВТ_ИтогСложныйРасчет.Партнер, ВТ_ИтогСложныйРасчет.Приоритет ИЗ ВТ_ИтогСложныйРасчет КАК ВТ_ИтогСложныйРасчет |
|||
6
Ненавижу 1С
гуру
25.05.20
✎
15:20
|
(4) 2.1. выбираем у каждой номенклатуры максимальные приоритеты
2.2. соединяем полученные макс. приоритеты с базовой, чтобы получить Процент им соответствующий |
|||
7
ColonelAp4u
25.05.20
✎
15:31
|
(6) не пойму что за связь Т.ном = Б.Ном
|
|||
8
ColonelAp4u
25.05.20
✎
15:34
|
(6) пытаюсь Ваш пример переложить на свою таблицу и ничего не получается.((
|
|||
9
Ненавижу 1С
гуру
25.05.20
✎
15:35
|
(7) у меня Т.Номенклатура=Б.Номенклатура
связь по номенклатуре |
|||
10
ColonelAp4u
25.05.20
✎
15:35
|
Т.Номенклатура, Б.Процент Что такое Т и Б когда вы назвали Базовая
|
|||
11
D_E_S_131
25.05.20
✎
15:38
|
Если всего 2 таблицы, то можно через "левое соединение" и "Выбор Когда" сделать.
ВЫБРАТЬ ВЫБОР КОГДА ВТ2.Номенклатура ЕСТЬ NULL ТОГДА ВТ1.Номенклатура ИНАЧЕ ВТ2.Номенклатура КОНЕЦ КАК Номеклатура, ВЫБОР КОГДА ВТ2.Процент ЕСТЬ NULL ТОГДА ВТ1.Процент ИНАЧЕ ВТ2.Процент КОНЕЦ КАК Процент, ВЫБОР КОГДА ВТ2.Приоритет ЕСТЬ NULL ТОГДА ВТ1.Приоритет ИНАЧЕ ВТ2.Приоритет КОНЕЦ КАК Приоритет ИЗ ВТ1 КАК ВТ1 ЛЕВОЕ СОЕДИНЕНИЕ ВТ2 КАК ВТ2 ПО ВТ1.Номенклатура = ВТ2.Номенклатура И ВТ1.Приоритет > ВТ2.Приоритет |
|||
12
ColonelAp4u
25.05.20
✎
15:42
|
(11) может оказаться что данных в ВТ1 не будет, и будут только ВТ2,
|
|||
13
Ненавижу 1С
гуру
25.05.20
✎
15:46
|
(10) про псевдонимы таблиц и подзапросов в запросах читали?
|
|||
14
ColonelAp4u
25.05.20
✎
15:49
|
(13) С этим уже разобрался)) (ВЫБРАТЬ Номенклатура, МАКСИМУМ(Приоритет)
ИЗ Базовая СГРУППИРОВАТЬ ПО Номенклатура) вот это теперь не понятно |
|||
15
ColonelAp4u
25.05.20
✎
15:50
|
(14) а точнее не пойму где у Вас это группировка происходит
|
|||
16
Ненавижу 1С
гуру
25.05.20
✎
16:00
|
(14) в смысле где?
ВЫБРАТЬ Номенклатура, МАКСИМУМ(Приоритет) ИЗ Базовая СГРУППИРОВАТЬ ПО Номенклатура для каждой номенклатуры вычисляется значение агрегатной функции МАКСИМУМ по полю Приооритет |
|||
17
ColonelAp4u
25.05.20
✎
16:24
|
(16) Сделал вложенный запрос, сгруппировал по максимум приоритет, связал таблицу с вложенным запросом, все равно не выводится так как надо(
|
|||
18
Ненавижу 1С
гуру
25.05.20
✎
16:25
|
(17) значит есть еще к чему стремиться
|
|||
19
ColonelAp4u
25.05.20
✎
16:56
|
(18) Спасибо разобрался!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |