ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Correcao de uma procedure.

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
fdsilva.desenv
Novato
Novato


Registrado: Quarta-Feira, 28 de Novembro de 2012
Mensagens: 12

MensagemEnviada: Seg Out 09, 2017 3:07 pm    Assunto: Correcao de uma procedure. Responder com Citação

Boa tarde pessoal, estou criando esta procedure que basicamente, precisa receber os valores de total de produtos e somas das vendas para compor um texto que será inserido na tabela PAINELBORDO.

Porém apareceram alguns erros quando tento receber valores nas minhas variaveis para receber o total de produtos e soma das vendas (variaveis @produtos e @vendas).

Poderiam me ajudar?

Obs.: O primeiro select junto com "INTO" que aparece é pra criar uma tabela temporário afim de buscar informações para gerar o segundo select.

Código:


CREATE PROCEDURE SP_PANBORDO_IMPOSTONEGATIVO
@codloja int
AS
BEGIN
declare @produtos numeric(5,0)
declare @vendas numeric(10,2)
declare @texto varchar(150)

if exists (select * from DBO.TempTabCategoria)
   DROP TABLE DBO.TempTabCategoria

SELECT P.CODCATEGORIA, COUNT(*) QTDITM
       , SUM(CX.IMPOSTOS) TOTALIMPOSTOS
       , SUM(CX.T_VALCUSTO) TOTALCUSTO, SUM(CX.T_VAL) TOTALVENDA
       INTO TempTabCategoria
       FROM
       (
       SELECT CX.BARRA, CX.CODPROD, PR.DESCRICAO, 0 PESO_BRUTO, PR.MARGEM_PARAM, PR.CODCATEGORIA, CR.DESCRICAO DESCRCATEGORIA
       , (SUM(CX.TOTITEM)/SUM(CX.QTD)) MEDIAVENDA, (SUM(CX.VALORCUSTO)/SUM(CX.QTD)) MEDIACUSTO
       , SUM(CX.QTD) T_QTD, SUM(CX.TOTITEM) T_VAL
       , SUM(CX.VALORCUSTO) T_VALCUSTO
       , SUM(
          ((CX.TOTITEM*(PA.COFINS+PA.PIS)/100) - (CX.VALORCUSTO*(PA.COFINS+PA.PIS)/100)) +
          ((CX.TOTITEM*CX.VALORTRIB/100) -  (CX.VALORCUSTO*ISNULL(U.ULTICMSCRED,0)/100))
            ) IMPOSTOS
       , (SUM( ASCII(CX.PROMOCAO) ) % 78) PROMOCAO
       FROM CAIXAGERAL CX, PRODUTOS PR, CATEGORIA CR, PARAM PA, ULTICMSCRED U
       WHERE
     
       CX.DATA BETWEEN DATEADD(dd,-(Day(DateADD(mm,1,Getdate()))-1), DateAdd(mm,-6,GetDate())) AND
                      DATEADD(dd,-(Day(DateADD(mm,1,Getdate()))), DateAdd(mm,-5,GetDate()))
      AND PR.TIPO_COFINS='T'
      AND CX.CODPROD = PR.CODPROD AND PR.CODCATEGORIA=CR.CODCATEGORIA
      AND PA.CODLOJA=@codloja --codloja variavel
      AND U.CODPROD=PR.CODPROD
      GROUP BY CX.BARRA, CX.CODPROD, PR.DESCRICAO, CX.VALORTRIB, PR.MARGEM_PARAM, PR.CODCATEGORIA, CR.DESCRICAO
      HAVING SUM(CX.QTD) > 0

      UNION ALL
     
      SELECT CX.BARRA, CX.CODPROD, PR.DESCRICAO, 0 PESO_BRUTO, PR.MARGEM_PARAM, PR.CODCATEGORIA, CR.DESCRICAO DESCRCATEGORIA
       , (SUM(CX.TOTITEM)/SUM(CX.QTD)) MEDIAVENDA, (SUM(CX.VALORCUSTO)/SUM(CX.QTD)) MEDIACUSTO
       , SUM(CX.QTD) T_QTD, SUM(CX.TOTITEM) T_VAL
       , SUM(CX.VALORCUSTO) T_VALCUSTO
       , SUM(
          ((CX.TOTITEM*CX.VALORTRIB/100) -  (CX.VALORCUSTO*ISNULL(U.ULTICMSCRED,0)/100))
            ) IMPOSTOS
       , (SUM( ASCII(CX.PROMOCAO) ) % 78) PROMOCAO
       FROM CAIXAGERAL CX, PRODUTOS PR, CATEGORIA CR, PARAM PA, ULTICMSCRED U
       WHERE
       CX.DATA BETWEEN DATEADD(dd,-(Day(DateADD(mm,1,Getdate()))-1), DateAdd(mm,-6,GetDate())) AND
                         DATEADD(dd,-(Day(DateADD(mm,1,Getdate()))), DateAdd(mm,-5,GetDate()))
       AND PR.TIPO_COFINS <> 'T'
       AND CX.CODPROD = PR.CODPROD AND PR.CODCATEGORIA=CR.CODCATEGORIA
       AND PA.CODLOJA= @codloja --codloja variavel
       AND U.CODPROD=PR.CODPROD
       GROUP BY CX.BARRA, CX.CODPROD, PR.DESCRICAO, CX.VALORTRIB, PR.MARGEM_PARAM, PR.CODCATEGORIA, CR.DESCRICAO
       HAVING SUM(CX.QTD) > 0
     
       ) CX, PRODUTOS P, CRECEITA CR
       WHERE CR.APURA='S'
       AND CX.CODPROD=P.CODPROD AND P.CODCRECEITA=CR.CODCRECEITA
       GROUP BY P.CODCATEGORIA                         

SELECT @produtos = COUNT(CX.CODPROD)PRODUTOS, @vendas = SUM(CX.MEDIAVENDA)VENDA
FROM
(
SELECT CX.BARRA, CX.CODPROD, CX.DESCRICAO, CX.PESO_BRUTO, CX.MARGEM_PARAM, CX.CODCATEGORIA, CX.DESCRCATEGORIA
       , CR.CODCRECEITA, GR.CODGRUPO, CR.DESCRICAO DECRCRECEITA, GR.DESCRICAO DESCRGRUPO, CT.CLASSIFIC, CX.SIT
       , SUM(CX.IMPOSTOS) IMPOSTOS
       , AVG(CX.MEDIACUSTO) MEDIACUSTO, AVG(CX.MEDIAVENDA) MEDIAVENDA, SUM(CX.T_QTD) T_QTD
       , SUM(CX.T_VALCUSTO) T_VALCUSTO, SUM(CX.T_VAL) T_VAL, SUM(CX.PROMOCAO) PROMOCAO, CX.ORDEM
FROM 
    (
       SELECT CX.BARRA, CX.CODPROD, PR.DESCRICAO, 0 PESO_BRUTO, PR.MARGEM_PARAM, PR.CODCATEGORIA, CR.DESCRICAO DESCRCATEGORIA, PR.DESATIVACOMPRA SIT
       , (SUM(CX.TOTITEM)/SUM(CX.QTD)) MEDIAVENDA, (SUM(CX.VALORCUSTO)/SUM(CX.QTD)) MEDIACUSTO
       , SUM(CX.QTD) T_QTD, SUM(CX.TOTITEM) T_VAL
       , SUM(CX.VALORCUSTO) T_VALCUSTO
       , SUM(
           ((CX.TOTITEM*(PA.COFINS+PA.PIS)/100) - (CX.VALORCUSTO*(PA.COFINS+PA.PIS)/100)) +
           ((CX.TOTITEM*CX.VALORTRIB/100) -  (CX.VALORCUSTO*ISNULL(U.ULTICMSCRED,0)/100))
             ) IMPOSTOS
       , (SUM( ASCII(CX.PROMOCAO) ) % 78) PROMOCAO
       , (SUM(CX.TOTITEM) - (SUM(CX.VALORCUSTO) + SUM(((CX.TOTITEM*(PA.COFINS+PA.PIS)/100) - (CX.VALORCUSTO*(PA.COFINS+PA.PIS)/100)) + ((CX.TOTITEM*CX.VALORTRIB/100) - (CX.VALORCUSTO*ISNULL(U.ULTICMSCRED,0)/100)))) )/
              (CAT.TOTALVENDA - (CAT.TOTALCUSTO + CAT.TOTALIMPOSTOS)) ORDEM
       FROM CAIXAGERAL CX, PRODUTOS PR, CATEGORIA CR, PARAM PA, ULTICMSCRED U, TEMPTABCATEGORIA CAT
       WHERE
       CX.DATA BETWEEN DATEADD(dd,-(Day(DateADD(mm,1,Getdate()))-1), DateAdd(mm,-6,GetDate())) AND 
                             DATEADD(dd,-(Day(DateADD(mm,1,Getdate()))), DateAdd(mm,-5,GetDate())) 
       AND PR.TIPO_COFINS='T'
       AND CX.CODPROD = PR.CODPROD AND PR.CODCATEGORIA=CR.CODCATEGORIA
       AND PA.CODLOJA= @codloja--codloja variavel
       AND U.CODPROD=PR.CODPROD  AND CAT.CODCATEGORIA=PR.CODCATEGORIA
       GROUP BY CX.BARRA, CX.CODPROD, PR.DESCRICAO, CX.VALORTRIB, PR.MARGEM_PARAM, PR.CODCATEGORIA, CR.DESCRICAO, PR.DESATIVACOMPRA, CAT.TOTALVENDA, CAT.TOTALCUSTO, CAT.TOTALIMPOSTOS
       HAVING SUM(CX.QTD) > 0
       UNION ALL

       SELECT CX.BARRA, CX.CODPROD, PR.DESCRICAO, 0 PESO_BRUTO, PR.MARGEM_PARAM, PR.CODCATEGORIA, CR.DESCRICAO DESCRCATEGORIA, PR.DESATIVACOMPRA SIT
       , (SUM(CX.TOTITEM)/SUM(CX.QTD)) MEDIAVENDA, (SUM(CX.VALORCUSTO)/SUM(CX.QTD)) MEDIACUSTO
       , SUM(CX.QTD) T_QTD, SUM(CX.TOTITEM) T_VAL
       , SUM(CX.VALORCUSTO) T_VALCUSTO
       , SUM(
           ((CX.TOTITEM*CX.VALORTRIB/100) -  (CX.VALORCUSTO*ISNULL(U.ULTICMSCRED,0)/100))
             ) IMPOSTOS
       , (SUM( ASCII(CX.PROMOCAO) ) % 78) PROMOCAO
       , (SUM(CX.TOTITEM) - (SUM(CX.VALORCUSTO) + SUM(((CX.TOTITEM*(PA.COFINS+PA.PIS)/100) - (CX.VALORCUSTO*(PA.COFINS+PA.PIS)/100)) + ((CX.TOTITEM*CX.VALORTRIB/100) - (CX.VALORCUSTO*ISNULL(U.ULTICMSCRED,0)/100)))) )/
              (CAT.TOTALVENDA - (CAT.TOTALCUSTO + CAT.TOTALIMPOSTOS)) ORDEM

       FROM CAIXAGERAL CX, PRODUTOS PR, CATEGORIA CR, PARAM PA, ULTICMSCRED U, TEMPTABCATEGORIA CAT
       WHERE
       CX.DATA BETWEEN DATEADD(dd,-(Day(DateADD(mm,1,Getdate()))-1), DateAdd(mm,-6,GetDate())) AND 
                             DATEADD(dd,-(Day(DateADD(mm,1,Getdate()))), DateAdd(mm,-5,GetDate())) 
       AND PR.TIPO_COFINS <>'T'
       AND CX.CODPROD = PR.CODPROD AND PR.CODCATEGORIA=CR.CODCATEGORIA
       AND PA.CODLOJA= @codloja--codloja variavel de loja
       AND U.CODPROD=PR.CODPROD AND CAT.CODCATEGORIA=PR.CODCATEGORIA
       GROUP BY CX.BARRA, CX.CODPROD, PR.DESCRICAO, CX.VALORTRIB, PR.MARGEM_PARAM, PR.CODCATEGORIA, CR.DESCRICAO, PR.DESATIVACOMPRA, CAT.TOTALVENDA, CAT.TOTALCUSTO, CAT.TOTALIMPOSTOS
       HAVING SUM(CX.QTD) > 0
       
   ) CX, PRODUTOS P, CRECEITA CR, GRUPO GR, CATEGORIA CT
WHERE CR.APURA='S'
AND     CX.IMPOSTOS < 0
AND CX.CODPROD=P.CODPROD AND P.CODCRECEITA=CR.CODCRECEITA AND P.CODGRUPO=GR.CODGRUPO AND CX.CODCATEGORIA=CT.CODCATEGORIA
GROUP BY CX.BARRA, CX.CODPROD, CX.DESCRICAO, CX.MARGEM_PARAM, CX.PESO_BRUTO
      , CR.CODCRECEITA, CX.SIT, GR.CODGRUPO, CX.CODCATEGORIA, CX.DESCRCATEGORIA, CR.DESCRICAO, GR.DESCRICAO, CT.CLASSIFIC, CX.ORDEM )CX

@texto = 'Existem '+ @produtos +' produtos em que estão com os IMPOSTOS NEGATIVOS. Passivo – R$ '+@vendas

if exists (select * from PAINELBORDO where CODLOJA = @codloja)
begin
   UPDATE PAINELBORDO SET BT_TEXTO2 = @texto, DATA = GETDATE() where CODLOJA = @codloja
end else
begin
   INSERT INTO PAINELBORDO  (CODLOJA,BT_TEXTO2,DATA) VALUES (@codloja,@texto,GETDATE())
end   
   

END
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB