erro user name required
12/01/2018
0
olá estou tentando agrupar uma consulta sql mais da erro user name required
segue codigo:
select
itensvenda.codmerc,
itensvenda.preco,
itensvenda.quant, SUM(Quant) AS quant,
itensvenda.codvenda,
produtos.codigo,
produtos.nome,
produtos.unidade,
produtos.referencia,
produtos.precocompra,
venda.codigo,
venda.total,
venda.data
from itensvenda,
venda,
produtos
where
(
(produtos.codigo = itensvenda.codmerc )
and
(venda.codigo = itensvenda.codvenda)
and
(venda.NomeOpera<>''''ORCAMENTO'''')
and
(venda.data between :vardatai and :vardataf)
)
group by itensvenda.codmerc
order by venda.data desc
se eu tirar o group by e SUM(Quant) AS quant funciona perfeitamente
segue codigo:
select
itensvenda.codmerc,
itensvenda.preco,
itensvenda.quant, SUM(Quant) AS quant,
itensvenda.codvenda,
produtos.codigo,
produtos.nome,
produtos.unidade,
produtos.referencia,
produtos.precocompra,
venda.codigo,
venda.total,
venda.data
from itensvenda,
venda,
produtos
where
(
(produtos.codigo = itensvenda.codmerc )
and
(venda.codigo = itensvenda.codvenda)
and
(venda.NomeOpera<>''''ORCAMENTO'''')
and
(venda.data between :vardatai and :vardataf)
)
group by itensvenda.codmerc
order by venda.data desc
se eu tirar o group by e SUM(Quant) AS quant funciona perfeitamente
Tiago Mendes
Curtir tópico
+ 0
Responder
Post mais votado
13/01/2018
select itensvenda.codmerc, itensvenda.preco, itensvenda.quant, SUM(Quant) AS quant, itensvenda.codvenda, produtos.codigo, produtos.nome, produtos.unidade, produtos.referencia, produtos.precocompra, venda.codigo, venda.total, venda.data from itensvenda, venda, produtos where produtos.codigo = itensvenda.codmerc and venda.codigo = itensvenda.codvenda and venda.NomeOpera<>''''ORCAMENTO'''' and venda.data between :vardatai and :vardataf group by itensvenda.codmerc, itensvenda.codmerc, itensvenda.preco, itensvenda.codvenda, produtos.codigo, produtos.nome, produtos.unidade, produtos.referencia, produtos.precocompra, venda.codigo, venda.total, venda.data /* Aqui voce tem que colocar, por quais campos você esta agrupando, você tem que colocar todos campos da cláusala select excepto pelo campo que vc esta somando */ order by venda.data desc
O Sum vai somar todos os registros do seu resultado por isso vc precisa indicar que esta agrupando as demais colunas. Retornando apenas uma linha.
se oque quer é somar tudo e exibir na linha retornando as demais precisa usar uma subquery como esse exemplo abaixo:
select itensvenda.codmerc, itensvenda.preco, (select itensvenda.quant, SUM(Quant) from itensvenda where itensvenda.codvenda = venda.codigo ) as quant, itensvenda.codvenda, produtos.codigo, produtos.nome, produtos.unidade, produtos.referencia, produtos.precocompra, venda.codigo, venda.total, venda.data from itensvenda, venda, produtos where produtos.codigo = itensvenda.codmerc and venda.codigo = itensvenda.codvenda and venda.NomeOpera<>''''ORCAMENTO'''' and venda.data between :vardatai and :vardataf order by venda.data desc
assim não precisará utilizar o group by na consulta.
Mas te indico fortemente utilizar uma outra consultar para obter este resultado já que você provavelmente vai utiliza-la em um header de pedido ou algo assim.
Espero ter ajudado.
Vinicius Diniz
Responder
Mais Posts
13/01/2018
Vinicius Diniz
select itensvenda.codmerc, itensvenda.preco, (select SUM(Quant) from itensvenda where itensvenda.codvenda = venda.codigo ) as quant, itensvenda.codvenda, produtos.codigo, produtos.nome, produtos.unidade, produtos.referencia, produtos.precocompra, venda.codigo, venda.total, venda.data from itensvenda, venda, produtos where produtos.codigo = itensvenda.codmerc and venda.codigo = itensvenda.codvenda and venda.NomeOpera<>''''ORCAMENTO'''' and venda.data between :vardatai and :vardataf order by venda.data desc
*Correção
Responder
16/01/2018
Tiago Mendes
Vinicius muito obrigado os dois sql s funcionam perfeitamente e geram o mesmo resultado e foi resolvido o problema de user name requerid pois tenho que informar todos os campos (essa parte que nao sabia), mais nao traz o resultado esperado o agrupamento das mercadorias e somando as quantidades sabe o que eu fiz de errado?
seque sql
gera esse resultado: https://drive.google.com/open?id=1c-Yf5jJzgCX9sGYXLxmrANhPv5HgQSQF
acho que partindo do principio mais filtrando por data e especificando o nome do produto este sql :
gera esse resultado: https://drive.google.com/open?id=117C7Ct7QwyqyqGH82cSKfOoofPNZ_1CF
seque sql
select itensvenda.codmerc, itensvenda.preco, itensvenda.quant, SUM(Quant) AS quant, itensvenda.codvenda, produtos.codigo, produtos.nome, produtos.unidade, produtos.referencia, produtos.precocompra, venda.codigo, venda.total, venda.data from itensvenda, venda, produtos where produtos.codigo = itensvenda.codmerc and venda.codigo = itensvenda.codvenda and venda.NomeOpera<>''ORCAMENTO'' and venda.data between :vardatai and :vardataf group by itensvenda.codmerc, itensvenda.quant, itensvenda.preco, itensvenda.codvenda, produtos.codigo, produtos.nome, produtos.unidade, produtos.referencia, produtos.precocompra, venda.codigo, venda.total, venda.data /* Aqui voce tem que colocar, por quais campos você esta agrupando, você tem que colocar todos campos da cláusala select excepto pelo campo que vc esta somando */ order by venda.data desc
gera esse resultado: https://drive.google.com/open?id=1c-Yf5jJzgCX9sGYXLxmrANhPv5HgQSQF
acho que partindo do principio mais filtrando por data e especificando o nome do produto este sql :
select itensvenda.codmerc , SUM(Quant) AS quant from itensvenda group BY codmerc
gera esse resultado: https://drive.google.com/open?id=117C7Ct7QwyqyqGH82cSKfOoofPNZ_1CF
Responder
Clique aqui para fazer login e interagir na Comunidade :)