У меня в таблице 4 столбца (клиент, пол, подразделение, продукт). Пол имеет уникальную ценность, связанную с каждым клиентом: мужской, женский или нулевой отдел имеет уникальную ценность, связанную с каждым продуктом: мужчинами или женщинами
для мужчины покупатель может купить женские товары, наоборот, для женщины покупающий мужской продукт
Я хочу создать таблицу, выбирайте только записи / строки, содержащие мужской продукт, для мужчин и только женский продукт для женщин.(если пол пуст, выберите записи о женских продуктах) Есть ли простой способ сделать это?
Я сделал сложный процесс.сначала используйте информацию о клиенте, чтобы разделить мужчин и других клиентов (создано 2 таблицы, cust_male и cust_other)
, затем используйте объединение, если клиент в таблице cust_male возвращает строки продуктов для мужчин (где подразделение = 'мужчины)');если клиент в таблице cust_other вернет строки продуктов для женского деления (где дивизион = 'женщины'), то 'объединит все' в две части.
Надеюсь, у меня есть очень простой способ или код для решения этой проблемы.
мы можем использовать код для создания таблицы tep
create table tep (id, gender, division, product) as
(
select 1, ‘male’, ‘men’, ‘aaa’ from dual
union all select 2, ‘female’, ‘women’, ’bbb’ from dual
union all select 2, ‘female’, ‘men’, ‘ccc’ from dual
union all select 1, ‘male’, ‘women’, ‘ddd’ from dual
union all select 3, ‘female’, ‘women’, ’ddd’ from dual
union all select 4, ‘null’, ‘women’, ’eee’ from dual
union all select 4, ‘null, ‘men, ’ccc’ from dual
);
мой метод был
create table cust_male as
select id from tep where gender='male';
create table cust_other as
select id from tep where (gender ='female') or (gender='null');
select * from tep t
inner join cust_male m
on m.id=t.id
where division ='men'
union all
select * from tep t
inner join cust_other f
on f.id=t.id
where division ='women'
надеюсь, мне не нужно создавать эти две дополнительные таблицы и иметьМы просто понимаем, что выбираем только мужские ряды продуктов для мужчин и выбираем женские ряды продуктов для женщин или нулевых клиентов