[MEU 50º LIVRO]: BANCOS DE DADOS E ACESS - CURSO COMPLETO - DO BÁSICO AO VBA - 1602 páginas

Páginas: 1602 | Autor: Júlio Battisti | 40% de Desconto e 70h de Vídeo Aulas de Bônus

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 »

Best Sellers de Excel do Julio Battisti

Todos com Vídeo Aulas, E-books e Planilhas de Bônus!

Aprenda com Júlio Battisti:
Excel 2010 Básico em 140 Lições - Através de Exemplos Práticos - Passo a Passo

 Aprenda com Júlio Battisti: Excel 2010 Básico em 140 Lições - Através de Exemplos Práticos

 

Autor: Júlio Battisti | Páginas: 540 | Editora: Instituto Alpha

 

[Livro]: Aprenda com Júlio Battisti: Excel 2010 Básico em 140 Lições - Através de Exemplos Práticos

Aprenda com Júlio Battisti: Excel 2010 Avançado, Análise de Dados, Tabelas Dinâmicas, Funções Avançadas, Macros e Programação VBA - Passo a Passo

Livro: Aprenda com Júlio Battisti: Excel 2010 Avançado, Análise de Dados, Tabelas Dinâmicas, Funções Avançadas, Macros e Programação VBA - Passo a Passo

 

Autor: Júlio Battisti | Páginas: 952 | Editora: Instituto Alpha

 

Livro: Aprenda com Júlio Battisti: Excel 2010 Avançado, Análise de Dados, Tabelas Dinâmicas, Funções Avançadas, Macros e Programação VBA - Passo a Passo

Aprenda com Júlio Battisti: Macros e Programação VBA no Excel 2010 Através de Exemplos Práticos e Úteis - Passo a Passo

 

[LIVRO]: Aprenda com Júlio Battisti: Macros e Programação VBA no Excel 2010 Através de Exemplos Práticos e Úteis - Passo a Passo

 

Autor: Júlio Battisti | Páginas: 1124 | Editora: Instituto Alpha

 

[LIVRO]: Aprenda com Júlio Battisti: Macros e Programação VBA no Excel 2010 Através de Exemplos Práticos e Úteis - Passo a Passo

Aprenda com Júlio Battisti: Excel 2010 - Curso Completo - Do Básico ao Avançado, Incluindo Macros e Programação VBA - Através de Exemplos Práticos

 

[A BÍBLIA DO EXCEL]: Aprenda com Júlio Battisti: Excel 2010 - Curso Completo - Do Básico ao Avançado, Incluindo Macros e Programação VBA - Através de Exemplos Práticos Passo a Passo

 

Autor: Júlio Battisti | Páginas: 1338 | Editora: Instituto Alpha

 

[A BÍBLIA DO EXCEL]: Aprenda com Júlio Battisti: Excel 2010 - Curso Completo - Do Básico ao Avançado, Incluindo Macros e Programação VBA - Através de Exemplos Práticos Passo a Passo

Todos os livros com dezenas de horas de vídeo aulas de bônus, preço especial (alguns com 50% de desconto). Aproveite. São poucas unidades de cada livro e por tempo limitado.

Dúvidas?

Utilize a área de comentários a seguir.

Me ajude a divulgar este conteúdo gratuito!

Use a área de comentários a seguir, diga o que achou desta lição, o que está achando do curso.
Compartilhe no Facebook, no Google+, Twitter e Pinterest.

Indique para seus amigos. Quanto mais comentários forem feitos, mais lições serão publicadas.

Quer receber novidades e e-books gratuitos?
›››

Novidades e E-books grátis

Fique por dentro das novidades, lançamento de livros, cursos, e-books e vídeo-aulas, e receba ofertas de e-books e vídeo-aulas gratuitas para download.



Institucional

  • Quem somos
  • Garantia de Entrega
  • Formas de Pagamento
  • Contato
  • O Autor
  • Endereço

  • 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-2017 ®

    [LIVRO]: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2010 - PASSO-A-PASSO

    APRENDA COM JULIO BATTISTI - 1124 PÁGINAS: CLIQUE AQUI