Questão de Banco de Dados — PostgreSQL — FUNCERN 2024
Banco de DadosPostgreSQL
- Código
- qg157097
- Banca
- FUNCERN
- Órgão
- AMCEVALE - RN
- Ano
- 2024
- Nível
- Superior
- Cargo
- Engenheiro de Computação
Considerando que a coluna debito_credito da tabela Rubrica pode armazenar o valor ‘C’ para registros de crédito e ‘D’ para registros de débito e que o total pago a cada funcionário é o somatório de pagamentos de Crédito menos o somatório dos pagamentos de débito, a consulta SQL, criada para executar em um ambiente PostgreSQL, versão 15, que retorna o nome do funcionário e o total pago a ele, está apresentada, corretamente, em:
- ASELECT F.nome AS funcionario, SUM(CASE WHEN R.debito_credito = 'C' THEN R.valor_baseELSE -R.valor_base END) AS total_pagoFROM Pagamento PINNER JOIN Funcionario F ON P.funcionario_id = F.idINNER JOIN Rubrica R ON P.rubrica_id = R.idGROUP BY F.nome
- BSELECT F.nome AS funcionario, SUM(R.valor_base) AS total_pagoFROM Pagamento PINNER JOIN Funcionario F ON P.funcionario_id = F.idINNER JOIN Rubrica R ON P.rubrica_id = R.idGROUP BY F.nome
- CSELECT F.nome AS funcionario, SUM(CASE WHEN R.debito_credito = 'C' THEN R.valor_baseEND) AS credito, SUM(CASE WHEN R.debito_credito = 'D' THEN R.valor_base END) AS debito, (credito - debito) as total_pagoFROM Pagamento PINNER JOIN Funcionario F ON P.funcionario_id = F.idINNER JOIN Rubrica R ON P.rubrica_id = R.idGROUP BY F.nome
- DSELECT F.nome AS funcionario, CASE WHEN R.debito_credito = 'C' THEN SUM(R.valor_base)ELSE SUM(-R.valor_base) END AS total_pagoFROM Pagamento PINNER JOIN Funcionario F ON P.funcionario_id = F.idINNER JOIN Rubrica R ON P.rubrica_id = R.idGROUP BY F.nome