Вот грубо говоря в таблице есть множество данных ---|----------|----------------------------------|----------|---| |1 |10 |2000-01-02 23:59:59.999|masha |1 | |2 |10 |2001-01-05 00:00:00.000|katya |2 | |3 |10 |2002-01-01 00:00:00.000|vika |1 | |4 |20 |2007-01-01 00:00:00.000|lesya |1 | |5 |20 |2007-01-01 00:00:00.000|vika |1 | |6 |30 |2010-01-01 00:00:00.000|oleg |1 | |7 |20 |2007-01-01 00:00:00.000|vika |2 | |8 |30 |2010-01-01 00:00:00.000|chtoto |2 | Мне необходимо сформировать отчет в котором если inividual = 10 , значит это Мужики,20 = женщини, 30 = ни то ни другое, и положить эти данные в отдельный столбец(что я успешно делаю - case when individual = 10 then 'Мужики' when individual = 20 then 'Женщины' when individual = 30 then 'Ни то ни другое' end as individual_rod) Так-же мне необходимо создать еще один столбец в котором если old равен 2, то кладем name данного individual, на выходе хочу получить вот такое |individual|individual_rod |name_by_old| |----------|-------------------|-----------| |10 |Мужики |katya | |20 |Женщины |vika | |30 |Ни то ни другое|chtoto |
а если old=2 будет у нескольких записей с разными именами, то через запятую их показать или как?
select individual, case when individual = 10 then 'Мужики' when individual = 20 then 'Женщины' when individual = 30 then 'Ни то ни другое' end as individual_rod, max(case when people.old = 2 then name end) as name_by_old from people group by individual order by individual; Вот, у меня получилось😂
Обсуждают сегодня