Ir para conteúdo
Fórum Script Brasil
  • 0

Coluna Calculada (Sum)


luancastro10

Pergunta

Pessoal preciso gerar uma coluna calculada dos Ids_Produtos que contém na query, mas está apresentando o erro :  Subquery returns more than 1 row  


Query : 

 

select

                            f.id,

        f.data_baixa as data_pagamento,

        cm.valor_movimento as valorFaturaSemFrete,

        c.id as idCadastro,

        c.nome,

                            (select sum(cm.valor_movimento) from teste_base.produtos_movimento pm

where pm.id_produto in(505,506,595,596,597,629,725,732,788,824,1197,1198,1199,1200,1278,214,215,216,217,218,219)

and pm.id_produto = pm.id_produto) as valor_kits

 

from teste_base.faturas f

left join teste_base.produtos_movimento pm on(pm.id_movimento = f.id_movimento)

left join teste_base.controle_movimento cm on(cm.id = f.id_movimento)

left join teste_base.usuarios u on(u.id = cm.id_usuario)

left join teste_base.cadastros c on(c.id = u.id_cadastro)

 

where

    f.confirmado = 1

and f.tipo not in(32,33)

and f.data_baixa >= '2017-05-01'

and f.data_baixa <= '2017-12-31'

and pm.id_produto in(505,506,595,596,597,629,725,732,788,824,1197,1198,1199,1200,1278,214,215,216,217,218,219)

group by f.id asc

having sum(pm.quantidade) >= 14

 

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

E se você tentar assim?

select
    f.id,
    f.data_baixa as data_pagamento,
    cm.valor_movimento as valorFaturaSemFrete,
    c.id as idCadastro,
    c.nome,
    sum(cm.valor_movimento) as valor_kits

from teste_base.faturas f

left join teste_base.produtos_movimento pm on(pm.id_movimento = f.id_movimento) and pm.id_produto in(505,506,595,596,597,629,725,732,788,824,1197,1198,1199,1200,1278,214,215,216,217,218,219)

left join teste_base.controle_movimento cm on(cm.id = f.id_movimento)

left join teste_base.usuarios u on(u.id = cm.id_usuario)

left join teste_base.cadastros c on(c.id = u.id_cadastro)

where f.confirmado = 1
and f.tipo not in(32,33)
and f.data_baixa >= '2017-05-01'
and f.data_baixa <= '2017-12-31'

group by f.id asc
having sum(pm.quantidade) >= 14

 

Editado por Leonardo Persan
Link para o comentário
Compartilhar em outros sites

  • 0
Em 18/12/2018 em 12:04, Leonardo Persan disse:

E se você tentar assim?


select
    f.id,
    f.data_baixa as data_pagamento,
    cm.valor_movimento as valorFaturaSemFrete,
    c.id as idCadastro,
    c.nome,
    sum(cm.valor_movimento) as valor_kits

from teste_base.faturas f

left join teste_base.produtos_movimento pm on(pm.id_movimento = f.id_movimento) and pm.id_produto in(505,506,595,596,597,629,725,732,788,824,1197,1198,1199,1200,1278,214,215,216,217,218,219)

left join teste_base.controle_movimento cm on(cm.id = f.id_movimento)

left join teste_base.usuarios u on(u.id = cm.id_usuario)

left join teste_base.cadastros c on(c.id = u.id_cadastro)

where f.confirmado = 1
and f.tipo not in(32,33)
and f.data_baixa >= '2017-05-01'
and f.data_baixa <= '2017-12-31'

group by f.id asc
having sum(pm.quantidade) >= 14

 

Obrigado pelo retorno Leonardo, ao executar o comando ele trouxe a coluna calculada, mas não dos itens que quero. 

para entender melhor , cada fatura tem 14 ou mais itens, quando ele acha os itens com os códigos 505,506,595,596,597,629,725,732,788,824,1197,1198,1199,1200,1278,214,215,216,217,218,219 forma o kit.
preciso do calculo somente deses itens. Ai sim será o valor real do Kit.

Editado por luancastro10
erro de portugues
Link para o comentário
Compartilhar em outros sites

  • 0

ele soma todos os itens da fatura, ou seja se ela tiver além dos 14 produtos. 

com 14 produtos = x
além dos 14 produtos = y 

mas preciso que na coluna calculada apareça somente o valor dos produtos em específico 505,506,595,596,597,629,725,732,788,824,1197,1198,1199,1200,1278,214,215,216,217,218,219. Assim conseguindo dizer o valor do Kit.

Link para o comentário
Compartilhar em outros sites

  • 0

Faz sentido Leonardo, mas uma pergunta consigo calcular somente os itens mencionados em outra coluna?
a busca está puxando todas as faturas que contém 14 itens ou mais, mas em valor da fatura é com todos os itens, preciso somente dos 14 que é o Kit.

Fazer um sum com os itens 505,506,595,596,597,629,725,732,788,824,1197,1198,1199,1200,1278,214,215,216,217,218,219

Link para o comentário
Compartilhar em outros sites

  • 0
23 minutos atrás, luancastro10 disse:

Faz sentido Leonardo, mas uma pergunta consigo calcular somente os itens mencionados em outra coluna?

Ele só está somando os valores dos itens dos ids que você listou

24 minutos atrás, luancastro10 disse:

Fazer um sum com os itens 505,506,595,596,597,629,725,732,788,824,1197,1198,1199,1200,1278,214,215,216,217,218,219

Porém aqui tem 21 ids

Link para o comentário
Compartilhar em outros sites

  • 0
4 minutos atrás, Leonardo Persan disse:

Ele só está somando os valores dos itens dos ids que você listou

Não, fiz a consulta e no campo valor da fatura veio o valor integral, com todos os itens além dos ids citados.

 

15 minutos atrás, Leonardo Persan disse:

Porém aqui tem 21 ids

Isso, então a consulta deve ser >20

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...