Preciso fazer uma soma no select

18/06/2016

0

estou precisando somar campos que eu nao sei a quantidade com o where que vem de outra tabela, ou seja estou usando um cursor para somar todos os campos e um inner join para puxar a referencia de quais campos devem ser somados segue exemplos

CREATE PROCEDURE SELECIONAR_PRODUTO

@IDENTIFICADOR INT,
@COD_PRODUTO INT
--@FILTRO INT

AS

BEGIN -- DECLARANDO VARIÁVEL COM O TOTAL DOS PREÇOS DAS IMAGENS

DECLARE @SOMA_PRECO_IMAGENS DECIMAL(18,2)

END

BEGIN
DECLARE SOMAR_PRECOS_IMAGENS CURSOR FOR

SELECT TB_IMAGENS.PRECO FROM TB_IMAGENS

INNER JOIN TB_ESTAMPAS_IMAGENS
ON TB_IMAGENS.COD_IMAGEM = TB_ESTAMPAS_IMAGENS.COD_IMAGEM

INNER JOIN TB_ESTAMPAS
ON TB_ESTAMPAS_IMAGENS.COD_ESTAMPA = TB_ESTAMPAS .COD_ESTAMPA

INNER JOIN TB_PRODUTOS
ON TB_ESTAMPAS.COD_ESTAMPA = TB_PRODUTOS.ESTAMPA

WHERE TB_PRODUTOS.CODIGO = @COD_PRODUTO AND TB_PRODUTOS.ESTAMPA = TB_ESTAMPAS_IMAGENS.COD_ESTAMPA

OPEN SOMAR_PRECOS_IMAGENS

FETCH NEXT FROM SOMAR_PRECOS_IMAGENS

DECLARE @PRECO DECIMAL(18,2)

FETCH NEXT FROM SOMAR_PRECOS_IMAGENS INTO @PRECO
WHILE(@@FETCH_STATUS = 0)
BEGIN

@SOMA_PRECO_IMAGENS = @SOMA_PRECO_IMAGENS + @PRECO

FETCH NEXT FROM SOMAR_PRECOS_IMAGENS INTO @PRECO

END
CLOSE SOMAR_PRECOS_IMAGENS
DEALLOCATE SOMAR_PRECOS_IMAGENS
END

SELECT

TB_PRODUTOS.CODIGO,
TB_PRODUTOS.TAMANHO,
TB_MODELOS.NOME,
TB_ADICIONAIS.NOME AS COR_CAMISETA,
TB_ADICIONAIS.NOME AS COSTURA,
TB_ADICIONAIS.NOME AS COR_COSTURA,
TB_ADICIONAIS.NOME AS OUTROS,
TB_ESTAMPAS.NOME,
TB_PRODUTOS.ESCRITA,
TB_PRODUTOS.IDENTIFICADOR,
TB_PRODUTOS.NOME


FROM TB_PRODUTOS

INNER JOIN TB_MODELOS
ON TB_PRODUTOS.MODELO = TB_MODELOS.COD_MODELO

INNER JOIN TB_ADICIONAIS
ON TB_PRODUTOS.COR_CAMISETA = TB_ADICIONAIS.COD_ADICIONAL

INNER JOIN TB_ESTAMPAS
ON TB_PRODUTOS.ESTAMPA = TB_ESTAMPAS.COD_ESTAMPA

INNER JOIN TB_ESTAMPAS_IMAGENS
ON TB_ESTAMPAS.COD_ESTAMPA = TB_ESTAMPAS_IMAGENS.COD_ESTAMPA

INNER JOIN TB_IMAGENS
ON TB_ESTAMPAS_IMAGENS.COD_IMAGEM = TB_IMAGENS.COD_IMAGEM

WHERE TB_PRODUTOS.IDENTIFICADOR = @IDENTIFICADOR AND TB_PRODUTOS.CODIGO = @COD_PRODUTO
--AND TB_PRODUTOS.FILTRO = @FILTRO

GO
Lucas Rodrigues

Lucas Rodrigues

Responder

Posts

20/06/2016

Larissa Moller

Já tentou usar um sub select?
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