FC ConcursosFC Concursos

Questão FC369431

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 Process

Linguagem SQL

FGV · 2025

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. 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

  2. SELECT p.processoid as numero, SUM(p.valor_causa) as

      ValorCausa, p.data_audiencia

      FROM processo p

      INNER JOIN parte pt ON pt.idade < 18

      INNER JOIN ProcessoParte pp ON pp.parteid = pt.parteid

      WHERE p.data_audiencia BETWEEN NOW() AND NOW() +

      INTERVAL '30 days'

      GROUP BY p.processoid, p.data_audiencia

      ORDER BY ValorCausa DESC

  3. SELECT p.processoid as numero, SUM(p.valor_causa) as

       ValorCausa, p.data_audiencia as DataAudiencia

       FROM Processo p

       INNER JOIN ProcessoParte pp ON p.ProcessoID =

       pp.ProcessoID

       INNER JOIN Parte pt ON pp.ParteID = pt.ParteID

       WHERE pt.idade < 18

       AND p.data_audiencia > NOW() + INTERVAL '30 days'

       GROUP BY p.processoid, p.data_audiencia

       ORDER BY ValorCausa ASC

  4. SELECT p.processoid as numero, p.valor_causa,

       p.data_audiencia

       FROM Parte pt

       INNER JOIN Processo p ON pt.idade < 18

       AND p.data_audiencia BETWEEN NOW() AND CURRENT_DATE +

       DATE_PART('DAY', 30)

  5. SELECT p.processoid, p.valor_causa, p.data_audiencia

      FROM processo p

      INNER JOIN parte pt ON pt.idade < 18

      WHERE p.data_audiencia BETWEEN NOW() AND NOW() + 30

Mostrar resposta e comentário

Gabarito

A

Comentário do professor

A consulta seleciona as colunas p.processoid, p.valor_causa e p.data_audiencia, ou seja, projeta os identificadores e informações relevantes dos processos.

As três tabelas são relacionadas via cláusulas em FROM + WHERE: Parte (apelidada pt), ProcessoParte (pp) e Processo (p). As condições pp.parteid = pt.parteid e pp.processoid = p.processoid implementam o vínculo many-to-many entre partes e processos.

A condição pt.idade < 18 filtra somente processos que envolvem menores de 18 anos.

O intervalo de data usa BETWEEN NOW()::DATE AND NOW()::DATE + INTERVAL '30 days', ou seja, inclui audiências de hoje até 30 dias à frente. O cast NOW()::DATE remove a hora, garantindo comparação por data.

Finalmente, ORDER BY p.valor_causa DESC ordena do maior para o menor valor da causa, atendendo ao requisito de maior valor primeiro.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo