Imagem de fundo

Seu chefe solicita um relatório que apresente os cinco (5)...

Seu chefe solicita um relatório que apresente os cinco (5) documentos mais solicitados da instituição nos últimos 20 dias. Você já implementou a consulta, porém ela não está executando. O SGBD em questão implementa o modelo relacional e utiliza a linguagem SQL. Assinale a alternativa que descreve corretamente o problema na consulta e como resolvê-lo. Considere ID como a chave primária para as tabelas.


SELECT X.DESCRICAO, X.COUNT(ITE.ID)

FROM (SELECT DOC.DESCRICAO, COUNT(ITE.ID)

QUANTIDADE

FROM DOCUMENTO DOC

JOIN ITEMSOLICITADO ITE ON (DOC.ID =

ITE.DOCUMENTO)

JOIN SOLICITACAO SOL ON (SOL.ID =

ITE.SOLICITACAO)

WHERE SOL.DATASOLICITACAO >= CURRENT_DATE-20

GROUP BY DOC.DESCRICAO

ORDER BY 2 DESC) X

LIMIT 5


A

Na consulta dentro da cláusula FROM, o trecho de comparação SOL.DATASOLICITACAO >= CURRENT_DATE-20 está errado. O correto seria SOL.DATASOLICITACAO <= CURRENT_DATE-20.


B

O campo utilizado na cláusula SELECT mais externa não pode ser utilizado, pois a tabela virtual X definida na cláusula FROM somente disponibiliza o campo QUANTIDADE. Dessa forma, deve-se trocar X.COUNT(ITE.ID) por X.QUANTIDADE.


C

O comando ORDER BY 2 DESC está errado, pois os campos do SELECT começam a ser contados da coluna 0. Como existem apenas dois campos, o correto seria: ORDER BY 1 DESC.


D

A posição do comando LIMIT 5 está errada. Esse comando deve ser adicionado antes da cláusula SELECT.


E

O comando GROUP BY DOC.DESCRICAO está errado, pois na cláusula SELECT o campo DOC.DESCRICAO está junto com uma função de agregação. Por isso o GROUP BY não pode ser utilizado.