USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  A nivel de conhecimento
ADRIANO2605
CAMPO GRANDE
MS - BRASIL
ENUNCIADA !
Postada em 10/02/2009 14:18 hs            
Ai pessoal, consegui escrever um sql, e achei muito bom e resolvi compartilhar com todos do forum, espero q possa ajudar alguem q precise agilizar o tempo de resposta de informações.

O código é o seguinte:
sql = "SELECT P.PRODUTO, P.ESTOQUE, P.VALOR, P.VALORCOMPRA, P.GRUPO, SUM(D.ENTRADA) AS SOMENT, SUM (D.SAIDA) AS SOMSAI, (SOMSAI * p.valor) as VlrProdSai, "
sql = sql & " iif(p.valorcompra = 0, (0 * SOMSAI), ((P.VALOR - P.VALORCOMPRA) * SOMSAI)) as LUCROPER, "
sql = sql & "D.CODIGOPRODUTO FROM PRODUTO AS P INNER JOIN DETESTOQUE AS D "
sql = sql & "ON D.CODIGOPRODUTO = P.CODIGO "
sql = sql & "WHERE D.DATA BETWEEN #" & Format(FrmParSaidaPorPeriodo.Ctxt(0).Text, "mm/dd/yyyy") & "# "
sql = sql & "AND #" & Format(FrmParSaidaPorPeriodo.Ctxt(1).Text, "mm/dd/yyyy") & "#"
If FrmParSaidaPorPeriodo.CmbGrupo.Text = Empty Then
Else
sql = sql & " and p.grupo like '" & FrmParSaidaPorPeriodo.CmbGrupo.Text & "' "
End If
sql = sql & "GROUP BY P.PRODUTO, D.CODIGOPRODUTO, P.ESTOQUE, P.VALOR, p.valorcompra, P.GRUPO"
sql = sql & " ORDER BY P.GRUPO"

Agora irei explicar o q é cada linha
sql = "SELECT P.PRODUTO, P.ESTOQUE, P.VALOR, P.VALORCOMPRA, P.GRUPO, SUM(D.ENTRADA) AS SOMENT, SUM (D.SAIDA) AS SOMSAI, (SOMSAI * p.valor) as VlrProdSai, "
**aqui eu fiz o sql denominei os campos da tabela produtos e fiz a soma dos campos da tabela detestoque que precisava somar, e ainda fiz um calculo do total de saida * o valor de compra (obs ajuda do treze e da ivonne)
sql = sql & " iif(p.valorcompra = 0, (0 * SOMSAI), ((P.VALOR - P.VALORCOMPRA) * SOMSAI)) as LUCROPER, "
**aqui eu implementei um iif pra fazer uma outra verificação! q é a seguinte se por acaso o valorcompra estiver zerado ele faz aquele calculo pra continuar zerado, caso contrario ele faz o calculo q eu pedi e denomina o nome do campo como lucroper (lucro do periodo)
sql = sql & "D.CODIGOPRODUTO FROM PRODUTO AS P INNER JOIN DETESTOQUE AS D "
aqui eu faço o  from e o inner join com das tabelas
sql = sql & "ON D.CODIGOPRODUTO = P.CODIGO "
sql = sql & "WHERE D.DATA BETWEEN #" & Format(FrmParSaidaPorPeriodo.Ctxt(0).Text, "mm/dd/yyyy") & "# "
** a clausula where
sql = sql & "AND #" & Format(FrmParSaidaPorPeriodo.Ctxt(1).Text, "mm/dd/yyyy") & "#"
If FrmParSaidaPorPeriodo.CmbGrupo.Text = Empty Then
Else
sql = sql & " and p.grupo like '" & FrmParSaidaPorPeriodo.CmbGrupo.Text & "' "
End If
e aqui eu coloquei um condição mas a condição agora não esta no sql e sim na concatenação do sql, se o usuario tiver selecionado o grupo ele filtra senão traz todos grupos ordenados por grupo
sql = sql & "GROUP BY P.PRODUTO, D.CODIGOPRODUTO, P.ESTOQUE, P.VALOR, p.valorcompra, P.GRUPO"
sql = sql & " ORDER BY P.GRUPO"
é basicamente isto!
Espero q vcs possam aproveitar tambem o codigo!

Abraço a todos
   
ADRIANO2605
CAMPO GRANDE
MS - BRASIL
ENUNCIADA !
Postada em 10/02/2009 14:20 hs            
   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 10/02/2009 17:19 hs            
Ficou muito bom, os comandos poderão ajudar outros colegas aqui dos site.
 
só um detalhe no cabeçlho do relatório possui um pequeno erro ortografico, mas de resto beleza
 
de 01/01/209 há 30/01/2009
 
não use o agá (H)
 
de 01/01/2009 à 30/01/2009
 
e boa sorte com seu código.
 
 
   
ADRIANO2605
CAMPO GRANDE
MS - BRASIL
ENUNCIADA !
Postada em 11/02/2009 14:41 hs            
Bem visto ainda bem q foi tu q avisou e não um cliente rsrsrsr
Valeu!
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página