[firebase-br] RES: Problema com SQL

Rodrigo A. de Freitas rodrigo em solucoeseinformatica.com.br
Qui Abr 12 14:05:37 -03 2007


José, a meu ver existe uma certa confusão aí:

No seu exemplo você indica querer somar a quantidade, mas na instrução SQL
você está somando o valor total dos lançamentos. O que você exatamente
deseja ?

Se é o total por produto, e sua tabela master possui N registros da
detalhe, então você deverá somar o total do ítem, que deve constar na
detalhe (você deve ter esse campo, ou pode simplesmente multiplicar a
quantidade * valor unitário).

Se você quer somar a QUANTIDADE total por dia, tem que usar o
SUM(DETALHE.MOV_QTDE) e não SUM(MASTER.MOV_TOTAL), senão você tem esse
comportamento de hoje, o de somar o valor total do lançamento para cada
ítem da tabela detalhe.

[]'s

Rodrigo A. de Freitas
Soluções & Informática



> Infelizmente o resultado é o mesmo após ter realizado a.s alterações que
> você
> sugeriu.
>
> Por exemplo, se eu tenho dois produtos vendidos no dia 01/04 e o total de
> produtos vendidos neste dia for 50, ele retorna os dois produtos e a qtde.
> de cada um deles é 50, ou seja, ele totaliza o dia e atribue este total a
> todos os produtos vendidos no dia 01/04.
>
> Creio que pelo fato da tabela MASTER não conter o campo com o Cód. Do
> Produto, não estou conseguindo fazer esta totalização.
>
> Obrigado pela ajuda.
>
> José Roberto Siqueira
> MSN..: jrsiqueira em hotmail.com | SkypeID: jrsiqueira
> GMail: jrsiqueira             | ICQ....: 170327096
> São Paulo-SP-Brasil
>
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
> Em
> nome de Claudio O2
> Enviada em: quinta-feira, 12 de abril de 2007 11:36
> Para: rmgr-listas em rmgr.com.br; FireBase
> Assunto: Re: [firebase-br] Problema com SQL
>
> Amigo, fiz uma rotina parecida aqui com tabelas parecidas e obtive
> resultado.
>
> Segue select
>
> select mov.documento, mov.fil_orig, mov.nr_cto, mov.dt_emissao,
> sum(nfs.vlr_mercadoria) as vl_merc from stwopetmov mov left join
> stwopetnota
> nfs on (nfs.documento = mov.documento) and (nfs.fil_orig = mov.fil_orig)
> and
> (nfs.nr_cto = mov.nr_cto) where mov.dt_emissao between ('01.04.2006') AND
> ('03.04.2006') group by mov.documento, mov.fil_orig, mov.nr_cto,
> mov.dt_emissao order by mov.documento, mov.fil_orig, mov.nr_cto,
> mov.dt_emissao
>
> De diferente da sua select eu pus os parametros de data com . e nao / e
> fora
> isso usei o left join. Mas testei com o inner tb e funcionou.
> Tente trocar seus parametros de data e rode pra ver.
>
> []´s
>
>
> José Roberto Siqueira escreveu:
>> Bom Dia Pessoal
>>
>> Por gentileza, necessito da ajuda dos colegas para resolver um
>> problema que estou enfrentando com uma instrução SQL.
>>
>> Possuo duas tabelas com estas estruturas:
>>
>> Tabela: MASTER		Campos:	MOV_LANC  -> Código de Lançamento
>> 				        	MOV_DATA  -> data do
>> lançamento
>>                            	MOV_VALOR -> valor do lançamento
>>
>> Tabela: DETALHE 	Campos: 	MOV_LANC	-> Código de
>> Lançamento
>> 						MOV_PRODU	-> Código do
>> Produto
>> 						MOV_QTDE	-> Qtde
>>
>> O que estou tentando fazer sem sucesso, é exibir um totalizador por
>> Data e Produto, por exemplo,
>>
>> DATA		PRODUTO		QTDE
>> ----		-------		----
>> 01/04/07	0010			3
>> 01/04/07	0030			10
>> 01/04/07	0070			35
>> 01/04/07	00130		100
>> 05/04/07	0010			14
>> 05/04/07	0018			1
>> 11/04/07	0010			9
>> 11/04/07	0030			7
>> 11/04/07	00100		300
>> 11/04/07	00307		187
>> 15/04/07	0010			4
>> 16/04/07	0010			7
>> 22/04/07	00188		3
>> 22/04/07	00177		3
>> 22/04/07	00189		3
>>
>> Ou seja, quero totalizar por dia e dentro de cada dia por produto.
>>
>> O que está ocorrendo é está sendo agrupado por data corretamente,
>> porém, no produto está sendo exibido o total geral e não por data.
>>
>> A instrução que estou aplicando é esta:
>>
>> SELECT
>> MASTER.MOV_DATA,
>> DETALHE.MOV_PROD,
>> SUM(MASTER.MOV_VALOR)
>> FROM MASTER INNER JOIN DETALHE
>> ON
>> DETALHE.MOV_LANC = MASTER.MOV_LANC
>> WHERE
>> MASTER.MOV_DATA BETWEEN ('01/04/2007') AND ('30/04/2007') GROUP BY
>> MASTER.MOV_DATA,DETALHE.MOV_PRODU ORDER BY
>> MASTER.MOV_DATA,DETALHE.MOV_PRODU
>>
>> Agradeço qualque ajuda.
>>
>> Abraços
>>
>> José Roberto Siqueira
>> MSN..: jrsiqueira em hotmail.com | SkypeID: jrsiqueira
>> GMail: jrsiqueira             | ICQ....: 170327096
>> São Paulo-SP-Brasil
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para editar sua configuração na lista, use o endereço
>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>>
>>
>
>
> --
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br Para
> editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>






Mais detalhes sobre a lista de discussão lista