• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

UnCiViLiZeD

ajuda ORACLE SQL

6 mensagens neste tópico

Boas tenho uma pequena duvida...

Tenho como objectivo o nome completo e valor total de vendas dos vendedores que mais vendas

efectuaram por loja e ano.

Fiz a seguinte query:

SELECT emp.nome, inst.nome, to_char(cmpr.data_compra,'YYYY'), SUM(cmpr.preco_venda), COUNT(*)
FROM empregado emp, instalacao inst, compra cmpr, contrato cont
WHERE (emp.num = cmpr.num) AND (cont.cod = inst.cod) AND (cont.num = emp.num)
AND (cont.ano = to_char(cmpr.data_compra,'YYYY'))
GROUP BY emp.nome, inst.nome, to_char(cmpr.data_compra,'YYYY');

Resultado:

NOME  NOME  TO_CHAR(CMPR.DATA_COMPRA,YYYY)  SUM(CMPR.PRECO_VENDA)  COUNT(*)

---------------------------------------- -------------------- ------------------------------ ---------------------- ----------------------

Jorge Jesus      Capas Negras        1997          2600          4

Jorge Jesus      Loja do Mario      1996          650            1

Jorge Jesus      Um Sitio Qualquer  2005          650            1

Luis Lavoisier  Capas Negras        1996          2974          9

Luis Lavoisier  Capas Negras        1997          1300          2

Luis Lavoisier  A Flor do ego        1999          80              1

Luis Lavoisier  A Flor do ego        2000          80              1

Luis Lavoisier  A Flor do ego        2001          650              1

Luis Lavoisier  A Flor do ego        2002          1300          2

Luis Lavoisier  A Flor do ego        2003          650            1

Luis Lavoisier  A Flor do ego        2004          700            1

Luis Lavoisier  A Flor do ego        2005          700            1

Luis Lavoisier  O Cantinho dos PCs 1998          1460          4

13 rows selectedEu ja tentei de enumeras formas para me dar apenas o que tem maior numero de vendas na mesma loja e no mesmo ano... mas nao consegui...

Alguma sujestao ???

Desde ja mt obrigado!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas tenho uma pequena duvida...

Tenho como objectivo o nome completo e valor total de vendas dos vendedores que mais vendas

efectuaram por loja e ano.

Deves ter de fazer um join com uma query para veres o max do valor por ano, e por loja.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

descreve as tabelas... acho q te posso ajudar com isto

Empregado ( num , NC , BI , nome , morada , telefone , tipo )

Instalacao ( cod , nome , morada , telefone , fax , CComercial , classificacao , area , tipo , Empregado.num_gestor )

Contrato ( Empregado.num , ano , Instalacao.cod )

Compra ( ncompra , Artigo.n_serie , Cliente.n_cliente , Empregado.num , data_compra , preco_venda ) 

Desde ja mt obrigado. []

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens o resultado, agora é só selecionar desse resultado o max agrupando por loja.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estás a dizer isto ??

SELECT emp.nome, inst.nome, to_char(cmpr.data_compra,'YYYY'), SUM(cmpr.preco_venda), MAX(COUNT(*))

GROUP BY inst.nome, to_char(cmpr.data_compra,'YYYY');

Se for, nao funciona... "not a single-group group function"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora