Banco de Dados Dicas Rápidas

Dicas de Construção de Query para iniciantes.

Escritor por Victor Amemiya

FAAAAALA PESSOAL!!!

Tudo bom?!

Hoje trago uma dica preciosa para quem está começando a mexer com o Protheus e SQL server. Especialmente, para o pessoal que ainda não está muito fluente em construção de querys.

É um recurso muito utilizado pelo pessoal do Crystal Reports, são as famosas “Exibições” (Views).

Trata-se de um procedimento relativamente simples e totalmente visual. Requer o básico de entendimento da arquitetura do sistema, pois, é necessário montar o relacionamento entre as tabelas corretamente, mas, o melhor é que isso é construído por um método simples, você basicamente “arrasta um campo até o outro”.

Todo o procedimento é realizado no Microsoft SQL Server Management Studio, vamos ao procedimento:

Passo 1: Escolher a base

Com o SQL Management Studio aberto, devemos selecionar qual o banco de dados que desejamos criar a query, ou no caso, a exibição.

Fique atualizado, É GRÁTIS!
Cadastre o seu endereço de e-mail e fique por dentro de todas as atualizações da AcademiaERP.
Não enviamos spam.

Passo 2: Criar uma Exibição

Agora que já escolhemos o banco, exiba as opções contidas abaixo dele(símbolo “+”) e clique com o botão direito do mouse na opção “Exibição”(Views), após isso, clique em “Nova Exibição”.

Passo 3: Relacionamento de Tabelas

Neste ponto, devemos escolher quais as tabelas que iremos utilizar em nossa pesquisa.

Neste exemplo, farei uma consulta a um Pedido de compras (SC7), entretanto, eu gostaria que nesta consulta seja exibido o código de barras do produto (esta informação está no cadastro de produtos SB1) e o CNPJ do fornecedor (SA2). Portanto, iremos utilizar 3 tabelas vinculadas entre elas. Devo selecionar as três e confirmar.

NOTA: Pode selecionar e adicionar as tabelas separadamente. Por exemplo, escreve SA1, irá posicionar na tabela SA1XXX, clique em incluir, então, procure a próxima, pois, a tela só irá fechar se assim o fizer. Caso tenha fechado a tela de inclusão de tabela acidentalmente, mas, ainda precisa incluir mais tabela, basta clicar com o botão direto na parte branca do fundo, no menu que se abrirá clique em “Adicionar tabela”.

Neste ponto, faço uma pequena pausa para explicar melhor cada parte desta nova tela de “Exibições”:

Retornando para o nosso exemplo, após escolher as tabelas, devemos iniciar a amarração enter as tabelas, é importante que antes disso, todas as amarrações que já vieram ao abrir as tabelas sejam excluídas.

Sabemos que o campo C7_PRODUTO (Código do produto) deverá ser igual ao mesmo código do cadastro do Produto (B1_COD), então, devemos clicar no campo C7_PRODUTO e arrastar até o campo B1_COD:

O mesmo deve ser feito para todos os outros relacionamentos, no meu caso:

C7_COD=A2_COD

C7_LOJA=A2_LOJA

 

Observe que a medida que vamos criando o relacionamento, o próprio programa vai escrevendo a query para nós:

Passo 4: Exibir

Agora devemos selecionar todos os campos que precisamos que seja exibido na query, ou, que queremos criar uma condição.

Exemplo:  Quero que seja impresso o CNPJ do Fornecedor, portanto, irei selecionar o campo A2_CGC, entretanto, apesar de não precisar ver o campo D_E_L_E_T_ da tabela SA2, eu irei selecionar ainda assim, pois, quero criar uma condição neste campo. Apenas os registros que este campo estiver vazio serão considerados na minha consulta.

NOTE, a ordem de escolhe de campos é a ordem em que serão montadas as colunas, os campos que escolhi e sua respectiva ordem segue abaixo:

C7_NUM (Número do Pedido)

C7_EMISSAO (Data de Emissão)

C7_Fornece (Código do fornecedor)

Obs.: Poderia ter escolhido o A2_COD, uma vez que as tabelas estão relacionadas, o efeito é o mesmo.

A2_CGC (CNPJ)

B1_CODBAR (Cod. de barras do Produto)

Por fim, selecionei o campo D_E_L_E_T_ das três tabelas.

A query atualizada ficou como na imagem abaixo:

Passo 5: Cláusulas

Neste consulta, desejo pesquisar apenas produtos que a emissão é Maior ou Igual à data 01/01/2016 e não quero que exibida os registros excluídos de nenhuma tabela. Para isso, irei colocar a expressão no campo “Filtrar” de cada campo descrito abaixo:

C7_EMISSAO: >=’20150101′

D_E_L_E_T_(de cada tabela): =”

 

O resultado desta alteração na parte de cláusula e na query pode ser verificada na imagem abaixo:

Fique atualizado, É GRÁTIS!
Cadastre o seu endereço de e-mail e fique por dentro de todas as atualizações da AcademiaERP.
Não enviamos spam.

Passo 6: Resultado

Agora que já construímos todos os relacionamentos entre as tabelas, escolhemos todos os campos que desejamos imprimir e criamos todas as nossas cláusulas, podemos fazer a execução da nossa consulta(Query) e analisar o resultado. Para isso, basta segurar a tecla CTRL e apertar ‘R’, ou então, vá em “Designer de Consulta” e após “Executar a Query”.

Bom, o resultado é conforme esperávamos, entretanto, note que as duas últimas colunas foram exibidas com um nome estranho, ‘Expr1’ e ‘Expr2’.

Isso ocorreu pelo fato de as 3 últimas colunas possuírem o mesmo nome, caso fosse exibida a informação ‘D_E_L_E_T_’ três vezes, não seria possível identificar a qual cada uma pertencia, por este motivo, o programa criou apelidos (alias) para cada coluna. Isso pode ser alterado livremente conforme a imagem abaixo:

Veja como ficou o meu resultado após personalizar os apelidos de todas as colunas. Lembre-se, você poderá copiar a query gerada em expressão SQL e utilizá-la no seu programa ADVPL.

Bom, por hoje é isso pessoal. Dúvidas, críticas ou sugestões, mandem um e-mail ou deixem um comentário. Não se esqueçam de se inscrever em nosso canal do YouTube e em nossas fã-pages.

Valeu e até o próximo!

Sobre o Autor

Victor Amemiya

Faaaaaala galera, tudo bom? Eu sou o Victor, formado em GSI pela Faculdade Impacta de Tecnologia. Minha praia é desenvolvimento, mas também gosto muito de banco de dados. Tem alguma dúvida, crítica ou sugestão? Me envie um e-mail: victor.amemiya@optera.com.br

Deixe um comentário

Dúvida?