Duvida na Geracao de Relatorio.

20/05/2011

0

Ola Boa tarde!!   Estou com um problema para montar um relatorio de vendas aqui na empresa.   Preciso montar um relatorio em sql onde me traga todos as marcas dos produtos que trabalhamos aqui na empresa e para cada marca totalize as quantidades de vendas, quantidade em estoque atual, quantidade de devolucoes no periodo, valores de venda, valores de devolucoes, venda liquida(vendas - devolucoes) margens de lucro e tal.   Ja apaguei e recriei o scrip varias vezes.   Alguem poderia me dar uma luz. rsrs   Abraco!!!
Alex Lekao

Alex Lekao

Responder

Posts

25/05/2011

Eliel Martins

  Olá Alex !


    Alex se tiver como você passar  um diagrama  das tabelas, que você  precisa fazer esse SQL ! , eu posso lhe ajudar.  Porque ficaria mais fácil de visualizar o  relacionamento entre as tabelas. Qualquer coisa manda no meu e-mail : eliel_martins@hotmail.com  




   Até mais.




  Eliel G. Martins 
Responder

25/05/2011

Alex Lekao

Oi Eliel, boa tarde!!   sou novato nesse lance de montagens de scripts, sql server, etc; Apesar de estar concluindo um curso de sql server, mas infelizmente na minha opniao eh bem superficial.   Eu nao sei bem o que seria o diagrama, rsrsrs, nem como fazer para manda-lo para vc, pode ser que seja simples, pq ainda nao tentei fazer nada do tipo. rssr   O problema basicamente eh o seguinte, aqui na empresa usamos um sistema ERP que os relatorios sao montados por um ambiente onde eu monto os scripts do sql e isso eh utilizando pelo ERP no layout que eu fizer posterior.   No caso deste relatorio em especifico, eu preciso apresentar alguns totais referente a soma geral de todas as minhas lojas(matriz e filiais), e essas base sao separadas, uma base para cada loja.   E tenho uma tabelz de fabricantes, uma tabela de produtos e as tabelas de cabecalhos de vendas e itens de vendas, e eu preciso dar esses totais.   Agora, no caso de enviar o diagrama vou verificar como faz e te passo.   obrigado desde ja.   Abraco.
Responder

26/05/2011

Emerson Nascimento

esse é o caminho:

SELECT
  PROD.MARCA,
  SUM(IT.QUANTIDADE) QTDTOTAL,
  SUM(IT.QUANTIDADE * IT.VALORUNITARIO) VALORVENDA
FROM
  ITEMVENDA IT
LEFT JOIN
  PRODUTO PROD ON PROD.ID_PRODUTO = IT.ID_PRODUTO
GROUP BY
  PROD.MARCA


para que seja lhe passado uma instrução mais objetiva é preciso conhecer seu banco de dados: onde está gravado o estoque atual, de onde são obtidas as devoluções, como calcular o lucro, etc.

pelas tabela que você apresentou só consegui pressupor onde obter a marca, valor total das vendas dessa marca e a quantidade total vendida. (ali está listado somente por marca, e não por marca+produto).

se você puder publicar a estrutura das tabelas envolvidas nessa questão ajuda bastante.

Responder

26/05/2011

Alex Lekao

Ok, farei a divulgacao das tabelas, e do que ja tenho montado de script. No script eu passo alguns parametros particulares do ERP.   ja ja eu posto aqui.   obrigado!!!   abraco!!!
Responder

26/05/2011

Alex Lekao

Pois bem, vamos la...   Estou postando abaixo o script que estou utilizando para montar o relatorio no nosso ERP.   Alguns campos foram ajustados para ser possivel executar no SSMS, e alguns itens estao em comentario porque sao parametros especificoes utilizados no nosso ERP.   Postarei em seguida as estruturas das tabelas.   Obrigado!!!   Abraco. --[SQL] SELECT I.MARCA, (CASE WHEN (1=1) THEN (SELECT SUM(E.Estoque) FROM JACSYSDB.DBO.ITEMSTK E WHERE E.MARCA=I.MARCA) ELSE 0 END)AS Estoque, (CASE WHEN (I.MOVSTK='S') THEN I.QTDADE ELSE 0 END) AS QTDVenda, (CASE WHEN (I.MOVSTK='E') THEN I.QTDADE ELSE 0 END) AS QTDDevolucao, SUM(0.00) AS QTDVDALIQ, (CASE WHEN (I.MOVSTK='S') THEN I.TOTLIQ ELSE 0 END) AS Venda, (CASE WHEN (I.MOVSTK='E') THEN I.TOTLIQ ELSE 0 END) AS Devolucao, (CASE WHEN (I.MOVSTK='S') THEN I.TOTLIQ ELSE -I.TOTLIQ END) AS Total, (CASE WHEN (I.MOVSTK='S') THEN (I.PRCCUE*I.QTDADE) ELSE 0 END) AS Custo, (CASE WHEN (I.MOVSTK='S') THEN I.TOTLIQ -(I.PRCCUE*I.QTDADE) ELSE 0 END) AS Margem, (CASE WHEN I.PRCCUE=0 THEN 1 ELSE (I.PRCLIQ/I.PRCCUE) END) AS MarkUP FROM JACSYSDB.DBO.REQVDA AS R LEFT JOIN JACSYSDB.DBO.ITEMVDA AS I ON (I.SID=R.SID) WHERE (R.TIPOREQ IN ('VD','DV')) AND (R.DATEMI >= '01.04.2011') AND (R.DATEMI <= '30.04.2011') --AND (R.CODVEN = [DADO3]) --AND (I.MARCA LIKE [DADO4]) GROUP BY R.CODLOJ,I.MARCA,I.QTDADE,I.MOVSTK,I.TOTLIQ,I.PRCCUE,I.PRCLIQ UNION SELECT I.MARCA, (CASE WHEN (1=1) THEN (SELECT SUM(E.Estoque) FROM JACSYSDB2.DBO.ITEMSTK E WHERE E.MARCA=I.MARCA) ELSE 0 END)AS Estoque, (CASE WHEN (I.MOVSTK='S') THEN I.QTDADE ELSE 0 END) AS QTDVenda, (CASE WHEN (I.MOVSTK='E') THEN I.QTDADE ELSE 0 END) AS QTDDevolucao, SUM(0.00) AS QTDVDALIQ, (CASE WHEN (I.MOVSTK='S') THEN I.TOTLIQ ELSE 0 END) AS Venda, (CASE WHEN (I.MOVSTK='E') THEN I.TOTLIQ ELSE 0 END) AS Devolucao, (CASE WHEN (I.MOVSTK='S') THEN I.TOTLIQ ELSE -I.TOTLIQ END) AS Total, (CASE WHEN (I.MOVSTK='S') THEN (I.PRCCUE*I.QTDADE) ELSE 0 END) AS Custo, (CASE WHEN (I.MOVSTK='S') THEN I.TOTLIQ -(I.PRCCUE*I.QTDADE) ELSE 0 END) AS Margem, (CASE WHEN I.PRCCUE=0 THEN 1 ELSE (I.PRCLIQ/I.PRCCUE) END) AS MarkUP FROM JACSYSDB2.DBO.REQVDA AS R LEFT JOIN JACSYSDB2.DBO.ITEMVDA AS I ON (I.SID=R.SID) WHERE (R.TIPOREQ IN ('VD','DV')) AND (R.DATEMI >= '01.04.2011') AND (R.DATEMI <= '30.04.2011') --AND (R.CODVEN = [DADO3]) --AND (I.MARCA LIKE [DADO4]) GROUP BY R.CODLOJ,I.MARCA,I.QTDADE,I.MOVSTK,I.TOTLIQ,I.PRCCUE,I.PRCLIQ UNION SELECT I.MARCA, (CASE WHEN (1=1) THEN (SELECT SUM(E.Estoque) FROM JACSYSDB3.DBO.ITEMSTK E WHERE E.MARCA=I.MARCA) ELSE 0 END)AS Estoque, (CASE WHEN (I.MOVSTK='S') THEN I.QTDADE ELSE 0 END) AS QTDVenda, (CASE WHEN (I.MOVSTK='E') THEN I.QTDADE ELSE 0 END) AS QTDDevolucao, SUM(0.00) AS QTDVDALIQ, (CASE WHEN (I.MOVSTK='S') THEN I.TOTLIQ ELSE 0 END) AS Venda, (CASE WHEN (I.MOVSTK='E') THEN I.TOTLIQ ELSE 0 END) AS Devolucao, (CASE WHEN (I.MOVSTK='S') THEN I.TOTLIQ ELSE -I.TOTLIQ END) AS Total, (CASE WHEN (I.MOVSTK='S') THEN (I.PRCCUE*I.QTDADE) ELSE 0 END) AS Custo, (CASE WHEN (I.MOVSTK='S') THEN I.TOTLIQ -(I.PRCCUE*I.QTDADE) ELSE 0 END) AS Margem, (CASE WHEN I.PRCCUE=0 THEN 1 ELSE (I.PRCLIQ/I.PRCCUE) END) AS MarkUP FROM JACSYSDB3.DBO.REQVDA AS R LEFT JOIN JACSYSDB3.DBO.ITEMVDA AS I ON (I.SID=R.SID) WHERE (R.TIPOREQ IN ('VD','DV')) AND (R.DATEMI >= '01.04.2011') AND (R.DATEMI <= '30.04.2011') --AND (R.CODVEN = [DADO3]) --AND (I.MARCA LIKE [DADO4]) GROUP BY R.CODLOJ,I.MARCA,I.QTDADE,I.MOVSTK,I.TOTLIQ,I.PRCCUE,I.PRCLIQ UNION SELECT I.MARCA, (CASE WHEN (1=1) THEN (SELECT SUM(E.Estoque) FROM JACSYSDB4.DBO.ITEMSTK E WHERE E.MARCA=I.MARCA) ELSE 0 END)AS Estoque, (CASE WHEN (I.MOVSTK='S') THEN I.QTDADE ELSE 0 END) AS QTDVenda, (CASE WHEN (I.MOVSTK='E') THEN I.QTDADE ELSE 0 END) AS QTDDevolucao, SUM(0.00) AS QTDVDALIQ, (CASE WHEN (I.MOVSTK='S') THEN I.TOTLIQ ELSE 0 END) AS Venda, (CASE WHEN (I.MOVSTK='E') THEN I.TOTLIQ ELSE 0 END) AS Devolucao, (CASE WHEN (I.MOVSTK='S') THEN I.TOTLIQ ELSE -I.TOTLIQ END) AS Total, (CASE WHEN (I.MOVSTK='S') THEN (I.PRCCUE*I.QTDADE) ELSE 0 END) AS Custo, (CASE WHEN (I.MOVSTK='S') THEN I.TOTLIQ -(I.PRCCUE*I.QTDADE) ELSE 0 END) AS Margem, (CASE WHEN I.PRCCUE=0 THEN 1 ELSE (I.PRCLIQ/I.PRCCUE) END) AS MarkUP FROM JACSYSDB4.DBO.REQVDA AS R LEFT JOIN JACSYSDB4.DBO.ITEMVDA AS I ON (I.SID=R.SID) WHERE (R.TIPOREQ IN ('VD','DV')) AND (R.DATEMI >= '01.04.2011') AND (R.DATEMI <= '30.04.2011') --AND (R.CODVEN = [DADO3]) --AND (I.MARCA LIKE [DADO4]) GROUP BY R.CODLOJ,I.MARCA,I.QTDADE,I.MOVSTK,I.TOTLIQ,I.PRCCUE,I.PRCLIQ /*[END] --[GRUPOBY] {CP=MARCA}{C1=QTDVENDA}{C2=QTDDEVOLUCAO}{C3=QTDVDALIQ}{C4=VENDA}{C5=DEVOLUCAO}{C6=TOTAL}{C7=MARGEM}{C8=CUSTO} [END] [RODAPE] Markup=SUM(VENDA)/SUM(Custo) {CM=Markup} {C1=VENDA} / {C2=Custo} [END] [TOTALIZADOR] MARKUP=DIV(/) [END] [TOTALIZADOR2] QTDVDALIQ=SUB() [END] [FORMATACAO] ESTOQUE=,#0.### QTDVenda=,#0.### QTDDEVOLUCAO=,#0.### TOTAL=,#0.00 CUSTO=,#0.00 VENDA=,#0.00 MARKUP=,#0.000 MARGEM=,#0.00 DEVOLUCAO=,#0.00 QTDVDALIQ=,#0.### |Qtd. Vda. Liq. #GDC=/CHAVE/ [END] [PARAMETROS] {CAMPO=[DADO1]} {TIPO=D} {OPR= >=} {TITULO=De} {DEF=DD/MM/YY} {CAMPO=[DADO2]} {TIPO=D} {OPR= <=} {TITULO=Ate} {DEF=DD/MM/YY} {CAMPO=[DADO3]} {TIPO=T} {OPR= =} {TITULO=Cod.Vendedor}{CD=CLI} {CAMPO=[DADO4]} {TIPO=T} {OPR= LIKE}{TITULO=Marca} {CD=MARCA} [END] [RELATORIO] FILTRO=[DADO1] [DADO2] [END] */
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar