математика и to_char - PullRequest
       4

математика и to_char

0 голосов
/ 23 апреля 2019

Отображение названия филиала, числа сотрудников в качестве численности персонала, общей заработной платы в качестве заработной платы и средней заработной платы в качестве «средней заработной платы» для филиалов, в которых работает более одного сотрудника. Отформатируйте все суммы в долларах в формате «$».

Ниже приведен мой код для ответа на этот запрос, однако я получаю сообщение об ошибке неверного номера.

select br_branchname, count (st_staffno) as "Headcount", 
    sum(to_char (st_salary, '$99,999.00')) as "Payroll", 
    avg(to_char (st_salary, '$99,999.00')) as "Average Salary"
from branch join staff
on st_br_branchno = br_branchno
group by br_branchname
having count (st_staffno) > 1;

1 Ответ

2 голосов
/ 23 апреля 2019

У вас есть TO_CHAR и AVG/SUM в обратном порядке:

select br_branchname,
       count (st_staffno) as "Headcount", 
       TO_CHAR(SUM(st_salary), '$99,999.00') as "Payroll", 
       TO_CHAR(AVG(st_salary), '$99,999.00') as "Average Salary"
from branch
INNER join staff
  on st_br_branchno = br_branchno
group by br_branchname
having count (st_staffno) > 1

Вы должны иметь TO_CHAR на «внешней стороне» вызовов стековых функций - в противном случае вы пытаетесь вычислитьсреднее значение и сумма символьной строки, содержащей '$', и Oracle вполне справедливо подгоняет примерно $, не являясь действительной цифрой.

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...