NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigosSQL Server 2005 › Capítulo 09 : 20
Quer receber novidades e e-books gratuitos?
« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »
SQL Server 2005 - CURSO COMPLETO
Autor: Júlio Battisti
Lição 152 - Capítulo 09 - EXEMPLO PRÁTICO 02: USANDO VIEWS PARA CRIAR CAMPOS CALCULADOS E TOTALIZAÇÕES

Neste nosso segundo exemplo, vamos analisar um caso que se encaixa bem no uso das diversas opções da linguagem T-SQL, para a criação de listagem personalizadas, com valores calculados. Vamos continuar trabalhando com o banco de dados NwindAccess, o qual você importou para o SQL Server 2005, no início deste capítulo. Neste banco de dados, temos uma tabela Pedidos, na qual estão armazenas as informações do cabeçalho do pedido, tais como: Número do Pedido, Código do Cliente, Código do Funcionário, Data do Pedido, Valor do frete e assim por diante. Neste banco de dados, foi criada uma segunda tabela, chamada Detalhes do Pedido. Esta tabela contem os itens individuais, de cada pedido, conforme já descrito anteriormente. Para este segundo exemplo, também vamos utilizar dados da tabela Funcionários. Na Figura 9.24, temos uma visão geral das tabelas Pedidos, Detalhes do Pedido e Funcionários, os campos de cada tabela e o relacionamento que existe entre elas.

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 9.24 As tabelas Pedidos, Detalhes do Pedido e Funcionários.

 Muito bem, o nosso segundo problema prático, é diretamente relacionado com as tabelas Pedidos, Detalhes do pedido e Funcionários. O nosso objetivo é listar o total de vendas por PaísDeDestino e, dentro de cada PaísDeDestino, por funcionário. Novamente teremos que criar um campo calculado, para ter o total por cada item de cada pedido. Depois teremos que agrupar por PaísDeDestino e, dentro do país, agrupar por Funcionário. Este será justamente o nosso trabalho, neste exemplo. Vamos criar uma View, que nos dê o resultado indicado na Figura 9.25

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 9.25 O resultado que deve ser retornado pela nossa View.

Neste exemplo, será exibidos os totais por país e, dentro do país.por funcionário. Por exemplo, a primeira linha exibe o total de vendas feitas para clientes da Alemanha, pelo funcionário Andrew, a segunda linha apresenta o total de vendas para clientes da Alemanha, feitas pelo Funcionário Anne e assim por diante.

Bem, a questão que fica é: Como chegar a este resultado, usando uma View, no SQL Server 2005?? A resposta esta logo a seguir. Continue acompanhando.

Exemplo prático: Criar uma View que retorne os resultados indicados na Figura 9.25. Para criar esta View, siga os passos indicados a seguir:

1.         Abra o SQL Server Management Studio e navegue até o banco de dados NwindAccess.

2.         Clique no sinal de + ao lado do banco de dados NwindAccess.

3.         Clique com o botão direito do mouse na opção Views, abaixo de NwindAccess e,  no menu de opções que é exibido, clique em New View...

4.         Será exibida a janela para criação de uma nova View, a qual você aprendeu a utilizar no exemplo anterior. No campo View name, digite Con - Total por País e Funcionario

5.         Na parte do comando da View, após o AS é que vem o comando T-SQL para a criação da Para criar esta View, digite o seguinte comando, na linha abaixo do AS:

SELECT Pedidos.PaísDeDestino, Funcionários.Nome, Sum(([Quantidade]*[PreçoUnitário])*(1-[Desconto])) AS TotalDeVendas

FROM

(Funcionários INNER JOIN Pedidos ON Funcionários.CódigoDoFuncionário = Pedidos.CódigoDoFuncionário) INNER JOIN [Detalhes do Pedido] ON Pedidos.NúmeroDoPedido = [Detalhes do Pedido].NúmeroDoPedido

GROUP BY Pedidos.PaísDeDestino, Funcionários.Nome

Este comando não tem grandes novidades em relação ao que já aprendemos. Mas vale a pena comentar os trechos utilizados neste código.

O primeiro trecho a ser analisado é o seguinte:

SELECT Pedidos.PaísDeDestino, Funcionários.Nome, Sum(([Quantidade]*[PreçoUnitário])*(1-[Desconto])) AS TotalDeVendas

Este trecho define os campos que serão retornados. No nosso exemplo são retornados os campos PaísDeDestino da tabela Pedidos, Nome da tabela Funcionários e um campo calculado, o qual chamamos de total de vendas. A fórmula de cálculo é a seguinte: (([Quantidade]*[PreçoUnitário])*(1-[Desconto]). Você pode estar se perguntando: “Mas e a função SUM, o que está fazendo neste comando??”. Muito bem, para entender o que a função SUM está fazendo, temos que nos deslocar para a parte final da instrução SQL:

GROUP BY Pedidos.PaísDeDestino, Funcionários.Nome

Esta parte orienta o SQL Server a agrupar os resultados por País e, dentro do país, por Nome do funcionário. A ordem é definida pela posição dos campos. Como primeiro vem o campo PaísDeDestino, primeiro é feito o agrupamento por País e, dentro do país, por funcionários. Se invertêssemos esta ordem, seria feito primeiro o agrupamento por Funcionário e, dentro das vendas de um mesmo funcionário, por país. Bem, agrupamos por País e, dentro do país por funcionário. E o que devemos fazer para obter os totais de vendas, dentro destes agrupamentos??? Somar os valores do campo TotalDeVendas. É exatamente por isso que foi utilizada a função SUM. Agora você já sabe o porquê de utilizar o SUM.

Um detalhe importante que você deve ter observado (ou talvez não), é que não fizemos a ordenação dos resultados, no comando de criação da view. Ou seja, não usamos uma cláusula ORDER BY para ordenar por País e depois pelo nome. Isso por que não é permitido o uso desta cláusula, dentro da View. A pergunta natural que surge é: Então, como faremos para ordenar os resultados??? Muito simples. Na hora de executar a View (conforme mostrarei logo a seguir), utilizaremos a cláusula ORDER BY, para ordenar os resultados retornados pela View.

O restante do comando, é onde é feito o relacionamento entre as tabelas Pedidos e Detalhes do Pedido, através do campo NúmeroDoPedido e entre as tabelas Pedidos e Funcionários, através do campo CódigoDoFuncionário. Basicamente são duas cláusulas INNER JOIN, conforme indicado no trecho de código a seguir.

FROM

(Funcionários INNER JOIN Pedidos ON Funcionários.CódigoDoFuncionário = Pedidos.CódigoDoFuncionário) INNER JOIN [Detalhes do Pedido] ON Pedidos.NúmeroDoPedido = [Detalhes do Pedido].NúmeroDoPedido

Muito bem, vamos salvar e testar a nossa View.

6.         Pressione Ctrl+S para salvar a view e feche a janela de criação da View.

7.         Abra a janela de execução de comandos T-SQL e execute o seguinte comando:

SELECT * FROM [Con - Total por País e Funcionario] ORDER BY PaísDeDestino, Nome

Observe que o nome da View vem entre colchetes. Isso é necessário por que existem espaços em branco no nome da View.

8.         Você deverá obter os resultados indicados na Figura 9.26:

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 9.26 Resultados da execução da nossa View em conjunto com ORDER BY.

Eu estou insistindo, bastante, no entendimento dos comandos T-SQL, pois eles são o que há de mais importante no SQL Server 2005. Para salientar o poder e flexibilidade destes comandos, vamos fazer uma pequena alteração na nossa View.

9.         Muito bem. Agora vamos começar a alterar nossa View. Vamos alterar o comando SQL da View para que, ao invés da soma das vendas por País e por Funcionário, seja exibido o número de pedidos por País de Destino e por funcionário. Para isso, vamos substituir o campo calculado TotalDeVendas pelo campo NúmeroDoPedido, pois esse é o campo que é único para cada pedido. Por isso é indicado para ser utilizado em uma contagem. Além disso, vamos trocar a função SUM pela função COUNT. Mãos à obra.

10.       Localize a view Con - Total por País e Funcionario, clique com o botão direito do mouse na View e, no menu de opções que é exibido, clique em Delete. Será exibida uma janela solicitando confirmação. Clique em OK para confirmar a exclusão da View. É preciso excluir a View e criá-la novamente, pois vamos adicionar novas colunas na View e retirar colunas.

11.       Clique com o botão direito do mouse na opção Views, abaixo de NwindAccess e,  no menu de opções que é exibido, clique em New View...

12.       Será exibida a janela para criação de uma nova View. No campo View name, digite Con - Total por País e Funcionario

13.       Na parte do comando da View, após o AS é que vem o comando T-SQL para a criação da View. Vamos agora alterar o comando, em relação ao que foi utilizado anteriormente. Vamos retirar a coluna calculada TotalDeVendas. No seu lugar, vamos inserir o campo NúmeroDoPedido, da tabela Pedidos e, neste campos, vamos usar a função COUNT. Para criar esta View, digite o seguinte comando, na linha abaixo do AS:

SELECT Pedidos.PaísDeDestino, Funcionários.Nome, Count(Pedidos.NúmeroDoPedido) AS ContarDeNúmeroDoPedido

FROM (Funcionários INNER JOIN Pedidos ON Funcionários.CódigoDoFuncionário = Pedidos.CódigoDoFuncionário) INNER JOIN [Detalhes do Pedido] ON Pedidos.NúmeroDoPedido = [Detalhes do Pedido].NúmeroDoPedido

GROUP BY Pedidos.PaísDeDestino, Funcionários.Nome

14.       Pressione Ctrl+S para salvar a view e feche a janela de criação da View.

15.       Abra a janela de execução de comandos T-SQL e execute o seguinte comando:

SELECT * FROM [Con - Total por País e Funcionario] ORDER BY PaísDeDestino, Nome

16.       Você deverá obter os resultados indicados na Figura 9.27:

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 9.27 Resultados da execução da nossa View, após as alterações.

Observe que agora, ao invés do total de vendas por País e por Funcionário, temos o número de pedidos por País e por Funcionário. Observe como o conhecimento dos comandos T-SQL nos dá uma vantagem muito grande, permitindo a criação de Views, para a obtenção dos resultados desejados. Conhecer bem os comandos T-SQL é mais do que uma obrigação do administrador e do desenvolvedor que trabalha com o SQL Server 2005: É INDISPENSÁVEL.

Vamos continuar analisando casos de usos dos comandos T-SQL para a criação de Views.

« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »

você conhece a universidade do access?

Universidade do Access - Curso Completo de Access
com tudo para você dominar o Access - do Básico ao
Avançado - até a Criação de Sistemas Profissionais
Completos - Passo a Passo - Tela a Tela

Capa da Universidade do Access

Aplica-se ao Access 2019, 2016, 2013 e 2010!

13 Cursos - 574 Vídeo-Aulas - 63:32 horas

Para todos os detalhes, acesse:

https://juliobattisti.com.br/universidade-do-access.asp

Quer receber novidades e e-books gratuitos?

 
 

Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

Todos os direitos reservados, Júlio Battisti 2001-2025 ®

LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO

DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI