Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FGV 2025

Banco de DadosSQL
Código
fg116125
Banca
FGV
Órgão
MPU
Ano
2025
Nível
Superior
Cargo
Analista do - Perito em Tecnologia da Informação e Comunicação
Observe a inserção dos registros pelo seguinte script SQL.INSERT INTO Parte (ParteID, idade)VALUES (1 ,17);INSERT INTO Parte (ParteID, idade)VALUES (2 ,16);INSERT INTO Processo (processoID, data_audiencia,valor_causa)VALUES (1 ,'2025-02-05',1000);INSERT INTO Processo (processoID, data_audiencia,valor_causa)VALUES (2 ,'2025-10-05',2000);INSERT INTO ProcessoParte (processoID, parteid)VALUES (1 ,1);INSERT INTO ProcessoParte (processoID, parteid)VALUES (2 ,2);No PostgreSQL, para consultar os Processos (Processos) que envolvem partes menores que 18 anos, por ordem de maior Valor de Causa (valor_causa), cuja Audiência (data_audiencia) está agendada para os próximos 30 dias, deve-se executar o comando SQL:
  1. ASELECT p.processoid, p.valor_causa, p.data_audienciaFROM Parte pt, ProcessoParte pp , Processo pWHERE pp.parteid = pt.parteid andpp.processoid = p.processoidAND pt.idade < 18AND p.data_audiencia BETWEEN NOW()::DATE ANDNOW()::DATE + INTERVAL '30 days'ORDER BY p.valor_causa DESC
  2. BSELECT p.processoid as numero, SUM(p.valor_causa) asValorCausa, p.data_audienciaFROM processo pINNER JOIN parte pt ON pt.idade < 18INNER JOIN ProcessoParte pp ON pp.parteid = pt.parteidWHERE p.data_audiencia BETWEEN NOW() AND NOW() +INTERVAL '30 days'GROUP BY p.processoid, p.data_audienciaORDER BY ValorCausa DESC
  3. CSELECT p.processoid as numero, SUM(p.valor_causa) asValorCausa, p.data_audiencia as DataAudienciaFROM Processo pINNER JOIN ProcessoParte pp ON p.ProcessoID =pp.ProcessoIDINNER JOIN Parte pt ON pp.ParteID = pt.ParteIDWHERE pt.idade < 18AND p.data_audiencia > NOW() + INTERVAL '30 days'GROUP BY p.processoid, p.data_audienciaORDER BY ValorCausa ASC
  4. DSELECT p.processoid as numero, p.valor_causa,p.data_audienciaFROM Parte ptINNER JOIN Processo p ON pt.idade < 18AND p.data_audiencia BETWEEN NOW() AND CURRENT_DATE +DATE_PART('DAY', 30)
  5. ESELECT p.processoid, p.valor_causa, p.data_audienciaFROM processo pINNER JOIN parte pt ON pt.idade < 18WHERE p.data_audiencia BETWEEN NOW() AND NOW() + 30
Revelar gabarito e comentário

GabaritoA — SELECT p.processoid, p.valor_causa, p.data_audiencia FROM Parte pt, ProcessoParte pp , Processo p WHERE pp.parteid = pt.parteid and pp.processoid = p.processoid AND pt.idade < 18 AND p.data_audiencia BETWEEN NOW()::DATE AND NOW()::DATE + INTERVAL '30 days' ORDER BY p.valor_causa DESC

Link permanente: /questoes/fg116125