| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Oracle > выборка из одной таблицы с разными параметрами |
| Автор: Swatch 5.2.2015, 05:58 | ||
| Подскажите, пожалуйста, есть таблица, в которой хранятся работники, выполненные ими типы заданий (для одного может быть их много), и статус по заданиям. Мне нужно написать выборку, чтобы получился список работников в первом столбце, а в остальных количество заданий по статусам. Примерно в таком виде: тип Тип Всего выполнено Заданий взятых задания1 задания 2 заданий в работу работник 1 5 1 2 6 работник 2 2 2 2 4 Я пишу примерно так
Мне кажется, такой запрос не очень красивым и правильным, т.к. выборка из одной таблицы и условия сильно повторяются. Есть идеи, как написать по-другому? |
| Автор: Akina 5.2.2015, 08:57 |
| Почитайте про GROUP BY |
| Автор: Swatch 5.2.2015, 09:07 | ||
Попыталась сделать транспонирование. получилось красиво, но почему-то теперь по работникам не объединяется. Код такой
Вот последний group by rabotnic почему-то не хочет работать. |
| Автор: Akina 5.2.2015, 12:34 |
| Наверное, потому, что не понимает, чего ты хочешь. Почитай ещё и про алиасы. |
| Автор: Swatch 5.2.2015, 12:49 |
| алиасы тут не при чем. и они, кстати, не помогли. Помог вызов max перед декодами. |
| Автор: Akina 5.2.2015, 13:12 |
Вообще-то при чём. Поле rabotnic есть как в наборе записей подзапроса, так и в таблице, являющейся его источником. Да вообще непонятно, как Oracle не послал тебя в syntax error с частичной группировкой. Это не MySQL, а Decode ни разу не групповая операция. |