Informática, perguntado por lieberher, 4 meses atrás

Foi solicitado a uma empresa de grande porte da área de Tecnologia da Informação que retornasse a data máxima de forma descrescente das faturas por fornecedor, a fim de orquestrar melhor a gestão dos prazos junto ao departamento financeiro.

Sendo você o DBA responsável pelo banco de dados, esclareça qual é a melhor forma de realizar essa consulta, sabendo que há duas tabelas (tb_fornecedores e tb_faturas) e o objetivo é retornar as datas máximas de forma descrescente das faturas por fornecedor. Exemplifique.

*Observação: nas tabelas de faturas, tem-se Id_fornecedor como ID do fornecedor.

Anexos:

lieberher: uai guria deixa de surto

Soluções para a tarefa

Respondido por maykesolucoes
1

Resposta:Padrão de resposta esperado

Para calcular a data máxima de forma decrescente das faturas para cada fornecedor na tabela de fornecedores, é preciso utilizar uma subquerie referenciando a coluna Id_fornecedor presente na tabela de Faturas, em uma consulta externa.

Utiliza-se, então, uma subconsulta (subquerie) com o SELECT:

SELECT DISTINCT FornecedorNome,

(SELECT MAX(DtFatura) FROM Faturas

WHERE Faturas.Id_fornecedor = Fornecedores.Id_fornecedor) AS UltimaFatura

FROM Fornecedores

ORDER BY UltimaFatura DESC;

A outra forma de se realizar a consulta é através da junção de tabelas (join). Nesse caso, foi utilizado uma subconsulta (subquerie), mas também seria possível empregar a junção entre tabelas.

Logo, é possível demonstrar que tanto as subqueries como os joins são fundamentais para a realização de consultas avançadas.

Explicação:

Perguntas interessantes