|
запрос с группировкой и условием | ☑ | ||
---|---|---|---|---|
0
virdim
13.12.18
✎
16:15
|
Привествую всех! Нуб в запросах, поэтому обращаюсь к гуру. Какой лучший способ сгруппировать таблицу запросом. Имеем следующую таблицу
Товар |магазин |Тип цен|подразделение 1.товар1|магазин1|тц1 |пс 2.товар2|магазин1|тц1 |пс 3.товар2|магазин1|тц2 |подразделение1 Как сгруппировать 2 и 3 строки чтобы осталось только та строка, у которой подразделение не пустая ссылка? |
|||
1
Ненавижу 1С
гуру
13.12.18
✎
16:16
|
группировать не надо, надо:
ГДЕ Подразделение<>&ПустаяСсылка |
|||
2
Дмитрий
13.12.18
✎
16:17
|
так сгруппировать или отобрать строки с непустым подразделением?
|
|||
3
mikecool
13.12.18
✎
16:17
|
сгруппировать по
Имеющие количество(Товар) = 1 Или количество(Товар)>1 и Не Максимум(подразделение1 ) = Значение(Пустаяссылка) |
|||
4
virdim
13.12.18
✎
16:31
|
(1) Тогда условие уберет строку 1
(2) Сгруппировать, т.е. наличие подразделение как бы имеет больший приоритет в одинаковых строках (3) Эм, а разьве так будет работать? Оно же не сгруппируется чтобы услови в имеющиеся отработало? количество(Товар) всегда будет 1. |
|||
5
dka80
13.12.18
✎
16:40
|
Выбрать
Товар,Магазин,Подразделение,Количество Из Источник Сгруппировать Максимум(Подразделение), Сумма(Количество) По Товар, Магазин |
|||
6
virdim
13.12.18
✎
16:44
|
(5) ты наверное перепутал сгруппировать с итогами и у меня нет количества
|
|||
7
Alexandr_U1982
13.12.18
✎
16:46
|
ВЫБРАТЬ
Источник.Товар КАК Товар, Источник.Магазин КАК Магазин, МАКСИМУМ(Источник.Подразделение) КАК Подразделение ИЗ Источник КАК Источник СГРУППИРОВАТЬ ПО Источник.Товар, Источник.Магазин |
|||
8
dezss
13.12.18
✎
16:47
|
Лучше группировать и максимум по подразделению, но тип цен исключить
|
|||
9
virdim
13.12.18
✎
16:55
|
(7) А тип цен куда? А кстати, если сделать максимум(типцен) в дополнении к максимум(подразделение) будет правильно работать? На моем примере работает, но я не уверен что это правильно. (8) А как его потом подцепить?
|
|||
10
Alexandr_U1982
13.12.18
✎
16:59
|
(9)Если сделать максимум(типцен) то не будет правильно работать. ТипЦен нужно подцепить левым соединением.
|
|||
11
dezss
13.12.18
✎
17:00
|
(9) Да даже максимум по подразделению не всегда будет корректно работать, нужно уточнять условия.
Если есть 2 разных подразделения, но с одинаковыми остальными полями, они должны остаться? |
|||
12
Alexandr_U1982
13.12.18
✎
17:01
|
ВЫБРАТЬ
Источник.Товар КАК Товар, Источник.Магазин КАК Магазин, МАКСИМУМ(Источник.Подразделение) КАК Подразделение ПОМЕСТИТЬ ВТДанные ИЗ Источник КАК Источник СГРУППИРОВАТЬ ПО Источник.Товар, Источник.Магазин ; //////////////////////////////////////////////////// ВЫБРАТЬ ВТДанные.Товар КАК Товар, ВТДанные.Магазин КАК Магазин, ВТДанные.Подразделение КАК Подразделение, Источник.ТипЦен ИЗ ВТДанные КАК ВТДанные ЛЕВОЕ СОЕДИНЕНИЕ Источник КАК Источник ПО ВТДанные.Товар = Источник.Товар И ВТДанные.Магазин = Источник.Магазин И ВТДанные.Подразделение = Источник.Подразделение |
|||
13
virdim
13.12.18
✎
17:31
|
(11) По условиям 2 разных не должно быть, только либо есть, либо нет.
(12) Да, хороший вариант. Только я забыл ещё про одно условие: размер этой таблицы получается более чем 2кк строк и хотелось бы избежать помещения этой таблицы во временную. |
|||
14
xXeNoNx
13.12.18
✎
19:14
|
(13) да не только это забыл..., структуру хранения данных не хочешь рассказать?
|
|||
15
xXeNoNx
13.12.18
✎
19:16
|
(12) количествоЗаписей = номенклатура * магазин * подразделение. Кошерно?
|
|||
16
xXeNoNx
13.12.18
✎
19:19
|
(15) предлагаю еще проиндексировать, шоб наверняка
|
|||
17
Alexandr_U1982
13.12.18
✎
19:57
|
(15) ХЗ, я не еврей
|
|||
18
Alexandr_U1982
13.12.18
✎
19:59
|
(16) Во-первых в (0) ничего не было сказано про 2 млн. записей.
Во-вторых, раз критикуешь, предложи свой вариант. |
|||
19
virdim
14.12.18
✎
09:08
|
(14) Структура следующая
1. справочник номенклатура 2. справочник магазины, включает подразделение и ТЦ 3. Некая таблица в которой содержаться: Исходный ТЦ, Новый ТЦ и подразделение. В ней может быть строка с одинаковым Исходным ТЦ как подразделением так и без. 1 и 2 соединяюся полным соединением. Получается чуть больше 2млн. строк. К этой таблице левым таблица 3 соединяется по Исходному ТЦ и Подразделению. |
|||
20
Alexandr_U1982
14.12.18
✎
10:15
|
(19)Напиши сюда запрос
|
|||
21
Alexandr_U1982
14.12.18
✎
10:30
|
(19)Помимо Исходного ТЦ, Нового ТЦ и Подразделения, что еще содержится в некой таблице? Откуда берется эта таблица?
|
|||
22
virdim
14.12.18
✎
12:25
|
(21) Нашёл решение. Разделил таблицу 3 из (19) на две таблицы, одна с пустым подразделением, другая нет. Далее сделал два левых соединений и выбрал естьnull(табСподразделениями.типЦен, табБезподразделениями.типЦен)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |