Fórum somar usando sql #290639
03/08/2005
0
Shampoo Para Cabelos Normais 2CARLOS LOJA
Shampoo Para Cabelos Oleosos 2CARLOS LOJA
Photoplus FPS 30 - Bloqueador Solar1KARLA ASSED
Desodorante Antiperspirante Roll-On1KARLA ASSED
Photoplus FPS 30 - Bloqueador Solar1ELIANE MATHIAS
Fluido ´C´ - Serum Facial 1 JORGE MARIZ
Sabonete Liquido para Peles Secas1CARLOS LOJA
Complex Up - Creme Facial 1 ANGELA LETA
nessa mesma tabela tenho um campo totrec, eu queria somar a qtd de cada medico e joga nesse campo, pos tenhp que colocar em ordem de qtd vendida e desse jeito que a tabela esta eu noa consigo usar o order by, o que devo fazer? ficaria assim no caso do medico carlos loja todo campo dele totrec teria o valor 5.
Rjcerri
Curtir tópico
+ 0Posts
03/08/2005
Agostinho
Tabela VENDA
PRODUTO
QTDE
MEDICO
O SELECT PODERIA SER
SELECT VENDA.PRODUTO,
VENDA.MEDICO,
sum(VENDAS.QTDE) as VENDAS
from VENDA where MEDICO = :MEDICO
orde by vendas.medico
Gostei + 0
03/08/2005
Rjcerri
sum(VENDAS.QTDE) as VENDAS
from VENDA where MEDICO = :MEDICO
orde by vendas.medico
quem é vendas? vc disse que venda era a tabela
eu fiz e da erro de campo invalido.
Gostei + 0
04/08/2005
Horus
O correto seria:
sum(venda.qtde) as vendas from venda where medico = :MEDICO order by venda.medico
Isso considerando que o nome da tabela é VENDA. (no singular)
No caso o VENDAS é o campo resultado da soma do campo QTDE.
Espero ter ajudado.
Gostei + 0
04/08/2005
Rjcerri
(´select datavenda,codigo,descricao,quantidade,medico,nvisitas,
nvisitasobj,objetivorec,varvisita,
divulgadora,sum(receitas.quantidade) as vendas from receitas where MEDICO=:MEDICO order by receitas.medico´);
ai da esse erro
Gruoup BY is required when both aggregate and non-aggregate fields are used in result set
Gostei + 0
04/08/2005
Marco Salles
Tente fazer passo a passo estas etapas
1) Coloque um novo componente query no seu projeto.. não use o ´Velho´
2)Link o DataSorce a este query , a DgGrid a este DataSourec e coloque na propriedade DataBase da query o Aliase corresppondente
3) Va na propriedade sql desse novo componente query e escreva o seguinte
select Medico,Sum(quantidade) as Total From Receitas Group By Medico
4)Apos isto de um Open a nivel de projeto na query
5) O Que isto deve ter fornecer :?: :?: :?:
ira aparecer na grid os nomes dos medicos e um outro campo chamado
Total com a soma da quantidade ...
Este campo que voce diz ter :::
isto não é necessário , pois a propria consulta na query fornece este campo , sem ter que grava-lo fisicamente na Tabela
6)Apos ter feito isto em tempo de projeto podemos passar para nivel de execução...Mas primeiro faça exatamente isto
P:S Tudo isto foi feito baseado que voce tem um Campo MEDICO, QUANTIDADE, e sua tabela chame RECEITAS.
P:S não coloque nada no Editor de propriedades desta query , por enquanto.
Gostei + 0
05/08/2005
Rjcerri
when group by exists, every simple field in projectors must be in group by
fiz assim
select descricao,medico,nvisitas,nvisitasobj,objetivorec,varvisita,divulgadora,sum(quantidade) as total from receitas Group by medico
essa query esta no before print do quickreport
Gostei + 0
05/08/2005
Marco Salles
Antes de passas Para a segunda etapa , quero destacar que ha um erro conceitual em relação a pesquisa que voce esta fazendo é o resultado que voce esta querendo Obter..
No primeiro tópico voce disse o seguinte:::
Olha , não te sentido apresentar o resultado da soma dos Produtos vendidos pelos médicos e numa mesma Query apresentar por exemplo a descrição desses Produtos..
Ora a Total de Produtos vendidos Por cada Médido é unico , Porém a descrição desses produtos Não é Unica....
eu citei o campo descrição porque é isto que voce me apresentou quando voce disse que estava fazendo assim
Da mesma forma , com foi citado o campo [b:c5fbc5d32d]descrição[/b:c5fbc5d32d] , também poderia citar o Campo [b:c5fbc5d32d]nvisitas[/b:c5fbc5d32d] etc...
Então voce deve definir o que voce quer de fato... Se for apresentar somente a quantidade de Produtos Indicados por cada médico , a consulta sql é igual aquela que nos fizemos a nivel de projeto...
Gostei + 0
05/08/2005
Rjcerri
carlos loja sabonete 1 7
carlos loja batom 3 7
carlos loja fluido 2 7
carlos loja xampoo 1 7
acho que assim eu poderia usar o order by, mas como fazer essa soma e que o problema.
Gostei + 0
05/08/2005
Rjcerri
Gostei + 0
06/08/2005
Marco Salles
Ja que o problema é impressão (sair no relatorio.. no final o total daquele medico. )
se eu entendi bem , isto deveria resolver
carlos loja sabonete 1 carlos loja batom 3 carlos loja fluido 2 carlos loja xampoo 1 Total = 7
Então sugiro a utilização do [color=darkblue:80e2ced7a4][b:80e2ced7a4]QRExpr1 [/b:80e2ced7a4][/color:80e2ced7a4]para somar o total de cada médico
Para o [b:80e2ced7a4]Agrupamento de quantidade dos produtos[/b:80e2ced7a4] vamos tentar fazer o seguinte
:arrow:
1)vamos acompanhar passo a passo
select Medico,descricao From Receitas Order By Medico,descricao
o que retorna isso
Pode retornar como resultado isto...
[b:80e2ced7a4]então sugiro tentar uma subconsulta.. [/b:80e2ced7a4]Que seria um alinhamento de select
2)Apague a consulta sql anteiro e escreva essa nova consulta sql , tudo isso a nivel de projeto
:arrow:
select Medico,descricao From Receitas where Exists(Select Descricao,(NomeDoCampoQuantidade) as TotalDeProdutos From Receitas Group by Descricao) Order By Medico,descricao
[b:80e2ced7a4]Faça isto a nivel de projeto siga os pasos de inicais.. [/b:80e2ced7a4]Se aparecer bo Dbgrid da maneira que voce quer podemos atacar o problema do QRExpr1
Gostei + 0
08/08/2005
Rjcerri
GROUP BY exists, every simple fieldin projectors must be in group by.
ele esta assim
sabonete 3
xampoo 2
batom 4
carlos loja 9
xampoo 1
creme 2
locao 1
karla assed 4
Gostei + 0
08/08/2005
Marco Salles
select Medico,descricao From Receitas where Exists(Select (NomeDoCampoQuantidade) as TotalDeProdutos From Receitas OrderBy Total deProdutos) Order By Medico
Tente isso a nivel de projeto e retorne se ira dar erro pi p que aparece na grid
Gostei + 0
08/08/2005
Rjcerri
Qreceita.SQL.Add(´select * from receitas order by medico,descricao,totrec´);
agora ele esta dando essa mensagem de erro
Field in order by must be in result set
sera que e porque o total repete a cada registro do medico?
Gostei + 0
08/08/2005
Marco Salles
desde do inicio to sentindo que falta um pouco de modelagem de dados na sua tabela :cry: :cry: :cry:
Ao inves de criar este campo ´Trotec´ , que parece que não irá trazer informação nenhuma , a não ser no relátorio , eu sugiro que voce altere a modalagem dos seus dados
Tipo Isto
[b:80b225d9d0]Onde a tabela A E B se relaciona pelo Cod-Medico [/b:80b225d9d0]
Daria para fazer o que voce quer sem muitas dificuldades
[b:80b225d9d0]O Resultado seria este:[/b:80b225d9d0]
Carlos Loja -->> Banda Detail
sabonete 1 -->> QrBandSubDetail batom 3 loja fluido 2 loja xampoo 1
Total = 7 -->>> QrExpress
Outro medico etc...
Para a Query da tabela A
Select *From A
Note que para a query Da Tabela B
select descricao,Sum(NomeDoCampoQuantidade) as TotalDeProdutos From B Wehere Cod-Medico=:Cod-Medico -->>>> Aqui se faz o Relacionamento Group by Descricao
P:S Importante
[b:80b225d9d0]Na queryB na propriedade DataSource no Objecto Inspector selecionar o DatSource Da Tabela A[/b:80b225d9d0]
Deixe o fieds editor das duas query em Branco...
No mais boa sorte...
Gostei + 0
08/08/2005
Rjcerri
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)