Pular para o conteúdo principal

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:
  1. 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
  2. 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
  3. 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
  4. 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
Revelar gabarito e comentário

GabaritoA — SELECT F.nome AS funcionario, SUM(CASE WHEN R.debito_credito = 'C' THEN R.valor_base ELSE -R.valor_base END) AS total_pago FROM Pagamento P INNER JOIN Funcionario F ON P.funcionario_id = F.id INNER JOIN Rubrica R ON P.rubrica_id = R.id GROUP BY F.nome

Link permanente: /questoes/qg157097