В SQL у меня есть запрос, который используется, чтобы найти тип ошибки, допущенной сотрудником. Существует 3 типа ошибок, которые сотрудник может совершить: финансовые, административные и ошибки в вашем распоряжении. Я использовал групповое предложение с employeeid и типом ошибки, но Я хочу сгруппировать только с employeeid, но в этом случае выдается ошибка, что вы должны включить тип ошибки в группу, потому что он включен в список выбора.
select i_empid,
COUNT(i_empid) as claims_audited,
sum(i_errcount) as total_errors,
case
when c_errtype = 'FINANCIAL'
then SUM(i_errcount)
else 0
end as financial_errors,
case
when c_errtype = 'ADMINISTRATIVE'
then SUM(i_errcount)
else 0
end as administrative_errors,
case
when c_errtype = 'FYI'
then SUM(i_errcount)
else 0
end as FYI_errors
from EL_Error_Mst
group by i_empid,
c_errtype
Я получаю набор результатов, как это:
i_empid claims_audited total_errors financial_errors administrative_errors FYI_errors
13 1 1 0 1 0
341 1 1 0 1 0
665 2 2 0 2 0
341 1 1 1 0 0
Но я хочу отдельную строку для каждого сотрудника, которая дает каждый тип ошибки, сделанной им. Как я могу получить это?
2 ответа
Вам нужно изменить порядок регистра и суммы и удалить группу с помощью c_errtype:
select i_empid,
count(i_empid) as claims_audited
sum(case when c_errtype='FINANCIAL' then i_errcount else 0 end) as financial_errors,
sum(case when c_errtype='ADMINISTRATIVE' then i_errcount else 0 end) as administrative_errors,
sum(case when c_errtype='FYI' then i_errcount else 0 end) as fyi_errors
from EL_Error_Mst
group by i_empid
Я думаю, что ваша ошибка вызвана тем, как вы пытаетесь суммировать свои условия. Как насчет этого?
select i_empid,
count(i_empid) as claims_audited,
sum(i_errcount) as total_errors,
sum(case
when c_errtype = 'FINANCIAL'
then i_errcount
else 0
end) as financial_errors,
sum(case
when c_errtype = 'ADMINISTRATIVE'
then i_errcount
else 0
end) as administrative_errors,
sum(case
when c_errtype = 'FYI'
then i_errcount
else 0
end) as FYI_errors
from EL_Error_Mst
group by i_empid
Похожие вопросы
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.