RES: [oracle_br] [OFF] - Ajuda com GROUP BY em SQL

2007-11-14 Por tôpico Wellington Martins Flaviano
Pedro.
A principio está com erro de ordem na sintaxe ...
Primeiro voce colocar o WHERE, depois o GROUP BY e por último o ORDER BY


SELECT v.* 
, c.Nome as [Criador]
, u.Nome [Unidade]
, a.Nome as [Alterador]
, ba.Nome AS [Banco]
, cli.Nome as [Cliente]
, (SELECT COUNT(codItem) FROM Itens_Vendas WHERE codVenda = v.codVenda AND 
Excluido = 0) AS [QtdeItem]
, (SELECT Nome FROM Formas_Pagamento WHERE codFormaPgto = v.codFormaPgto 
AND Excluido = 0) AS [FormaPgto]
, vend.Nome as [Vendedor]
, (select codTipoCliente from Clientes where codCliente = v.codCliente AND 
Excluido=0) AS [codTipoCliente]
, (SELECT TOP 1 Comissao FROM Clientes WHERE codCliente = V.codUsuarioCad) 
AS [Comissao] 

FROM (((Vendas v
LEFT JOIN Clientes c ON v.codUsuarioCad = c.codCliente)
INNER JOIN Unidades u ON v.codUnidade = u.codUnidade)
LEFT JOIN Clientes a ON v.codUsuarioCad = a.codCliente)
LEFT JOIN Clientes cli ON v.codCliente = cli.codCliente)
LEFT JOIN Conta_Correntes_Unidades cun ON v.codConta = cun.codConta)
LEFT JOIN Bancos ba ON cun.codBanco = ba.codBanco)
LEFT JOIN Clientes vend ON v.codVendedor = vend.codCliente)

WHERE v.Excluido = 0

GROUP BY FormaPgto

ORDER BY v.dtVenda DESC


Testa ai 

[]'s
Wellington


-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Pedro de 
Souza Silva Junior
Enviada em: terça-feira, 13 de novembro de 2007 12:34
Para: OracleBr
Assunto: [oracle_br] [OFF] - Ajuda com GROUP BY em SQL

Pessoal, tenho uma clausula SQL onde preciso fazer uma agrupamento pelo campo 
forma de pagamento, mais está me retornando erro, será que alguem poderia me 
dar uma orientação de como conseguir executar esta query?
Estou usando SQL Server, mais como se trata de SQL acho que não haveria 
problema em pedir ajuda aos amigos de ORACLE. :)

SELECT v.* 
, c.Nome as [Criador]
, u.Nome [Unidade]
, a.Nome as [Alterador]
, ba.Nome AS [Banco]
, cli.Nome as [Cliente]
, (SELECT COUNT(codItem) FROM Itens_Vendas WHERE codVenda = v.codVenda AND 
Excluido = 0) AS [QtdeItem]
, (SELECT Nome FROM Formas_Pagamento WHERE codFormaPgto = v.codFormaPgto 
AND Excluido = 0) AS [FormaPgto]
, vend.Nome as [Vendedor]
, (select codTipoCliente from Clientes where codCliente = v.codCliente AND 
Excluido=0) AS [codTipoCliente]
, (SELECT TOP 1 Comissao FROM Clientes WHERE codCliente = V.codUsuarioCad) 
AS [Comissao] 

FROM (((Vendas v
LEFT JOIN Clientes c ON v.codUsuarioCad = c.codCliente)
INNER JOIN Unidades u ON v.codUnidade = u.codUnidade)
LEFT JOIN Clientes a ON v.codUsuarioCad = a.codCliente)
LEFT JOIN Clientes cli ON v.codCliente = cli.codCliente)
LEFT JOIN Conta_Correntes_Unidades cun ON v.codConta = cun.codConta)
LEFT JOIN Bancos ba ON cun.codBanco = ba.codBanco)
LEFT JOIN Clientes vend ON v.codVendedor = vend.codCliente)

GROUP BY FormaPgto

WHERE v.Excluido = 0  ORDER BY v.dtVenda DESC




  Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
armazenamento!
http://br.mail.yahoo.com/

[As partes desta mensagem que não continham texto foram removidas]



Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package » 
Procedure » Scripts » Tutoriais acesse: 
http://www.oraclebr.com.br/codigo/ListaCodigo.php
--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
--
O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/

Links do Yahoo! Grupos



Esta mensagem pode conter informação confidencial e/ou privilegiada. Se você 
não for o destinatário ou a pessoa autorizada a receber esta mensagem, não pode 
usar, copiar ou divulgar as informações nela contidas ou tomar qualquer ação 
baseada nessas informações. Se você recebeu esta mensagem por engano, por favor 
avise imediatamente o remetente, respondendo o e-mail e em seguida apague-o. 
Agradecemos sua cooperação.

This message may contain confidential and/or privileged information. If you are 
not the addressee or authorized to receive this for the addressee, you must not 
use, copy, disclose or take any action based on this message or any information 
herein. If you have received this message in error, please advise the sender 
immediately by reply e-mail and delete this message. Thank you for your 
cooperation.


[As partes desta mensagem que não continham texto foram removidas]



RES: RES: [oracle_br] [OFF] - Ajuda com GROUP BY em SQL

2007-11-14 Por tôpico Wellington Martins Flaviano
É o seguinte 
Qual é chave primaria ou seja qual a coluna que está trazendo que não pode 
duplicar.
Um exemplo:

seletc
CPF
,NOME
,IDADE
From tabela

Sabe-se que o CPF é chave, então voce dá um max no nome, idade e não precisa 
referenciar no group by... Ou então não colocar o max e poe todas as colunas do 
select no group by.
E outra, no subselect voce deve colocar uma clausula: sum, max, count ... Isso 
só se voce trazer um campo em especifico.


SELECT v.*  -- nessa parte, todas as colunas que está trazendo tem que colocar 
no group by ou se encaixar no que eu disse acima.

Espero ter ajudado em algo ...


[]'s
Wellington
 

-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Pedro de 
Souza Silva Junior
Enviada em: quarta-feira, 14 de novembro de 2007 09:22
Para: oracle_br@yahoogrupos.com.br
Assunto: Res: RES: [oracle_br] [OFF] - Ajuda com GROUP BY em SQL

 Acabei conseguindo acertar o SQL.
Após fazer a alteração de colocar o GROUP BY depois do WHERE deu o seguinte 
erro:
Msg 8120, Level 16, State 1, Line 2
Column
'v.codVenda' is invalid in the select list because it is not contained in 
either an aggregate function or the GROUP BY clause.
Não foi só esta coluna, foram várias, então inclui essas colunas no GROUP BY e 
funcionou perfeitamente.
Mais uma vez obrigado a todos pela ajuda
:)

- Mensagem original 
De: Wellington Martins Flaviano [EMAIL PROTECTED]
Para: oracle_br@yahoogrupos.com.br
Enviadas: Quarta-feira, 14 de Novembro de 2007 9:48:44
Assunto: RES: [oracle_br] [OFF] - Ajuda com GROUP BY em SQL









  



Pedro.

A principio está com erro de ordem na sintaxe ...

Primeiro voce colocar o WHERE, depois o GROUP BY e por último o ORDER BY



SELECT v.* 

, c.Nome as [Criador]

, u.Nome [Unidade]

, a.Nome as [Alterador]

, ba.Nome AS [Banco]

, cli.Nome as [Cliente]

, (SELECT COUNT(codItem) FROM Itens_Vendas WHERE codVenda = v.codVenda AND 
Excluido = 0) AS [QtdeItem]

, (SELECT Nome FROM Formas_Pagamento WHERE codFormaPgto = v.codFormaPgto 
AND Excluido = 0) AS [FormaPgto]

, vend.Nome as [Vendedor]

, (select codTipoCliente from Clientes where codCliente = v.codCliente AND 
Excluido=0) AS [codTipoCliente]

, (SELECT TOP 1 Comissao FROM Clientes WHERE codCliente = V.codUsuarioCad) 
AS [Comissao] 



FROM (((Vendas v

LEFT JOIN Clientes c ON v.codUsuarioCad = c.codCliente)

INNER JOIN Unidades u ON v.codUnidade = u.codUnidade)

LEFT JOIN Clientes a ON v.codUsuarioCad = a.codCliente)

LEFT JOIN Clientes cli ON v.codCliente = cli.codCliente)

LEFT JOIN Conta_Correntes_ Unidades cun ON v.codConta = cun.codConta)

LEFT JOIN Bancos ba ON cun.codBanco = ba.codBanco)

LEFT JOIN Clientes vend ON v.codVendedor = vend.codCliente)



WHERE v.Excluido = 0



GROUP BY FormaPgto



ORDER BY v.dtVenda DESC



Testa ai 



[]'s

Wellington



-Mensagem original -

De: [EMAIL PROTECTED] os.com.br [mailto:[EMAIL PROTECTED] os.com.br] Em nome de 
Pedro de Souza Silva Junior

Enviada em: terça-feira, 13 de novembro de 2007 12:34

Para: OracleBr

Assunto: [oracle_br] [OFF] - Ajuda com GROUP BY em SQL



Pessoal, tenho uma clausula SQL onde preciso fazer uma agrupamento pelo campo 
forma de pagamento, mais está me retornando erro, será que alguem poderia me 
dar uma orientação de como conseguir executar esta query?

Estou usando SQL Server, mais como se trata de SQL acho que não haveria 
problema em pedir ajuda aos amigos de ORACLE. :)



SELECT v.* 

, c.Nome as [Criador]

, u.Nome [Unidade]

, a.Nome as [Alterador]

, ba.Nome AS [Banco]

, cli.Nome as [Cliente]

, (SELECT COUNT(codItem) FROM Itens_Vendas WHERE codVenda = v.codVenda AND 
Excluido = 0) AS [QtdeItem]

, (SELECT Nome FROM Formas_Pagamento WHERE codFormaPgto = v.codFormaPgto 
AND Excluido = 0) AS [FormaPgto]

, vend.Nome as [Vendedor]

, (select codTipoCliente from Clientes where codCliente = v.codCliente AND 
Excluido=0) AS [codTipoCliente]

, (SELECT TOP 1 Comissao FROM Clientes WHERE codCliente = V.codUsuarioCad) 
AS [Comissao] 



FROM (((Vendas v

LEFT JOIN Clientes c ON v.codUsuarioCad = c.codCliente)

INNER JOIN Unidades u ON v.codUnidade = u.codUnidade)

LEFT JOIN Clientes a ON v.codUsuarioCad = a.codCliente)

LEFT JOIN Clientes cli ON v.codCliente = cli.codCliente)

LEFT JOIN Conta_Correntes_ Unidades cun ON v.codConta = cun.codConta)

LEFT JOIN Bancos ba ON cun.codBanco = ba.codBanco)

LEFT JOIN Clientes vend ON v.codVendedor = vend.codCliente)



GROUP BY FormaPgto



WHERE v.Excluido = 0  ORDER BY v.dtVenda DESC



Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento!

http://br.mail. yahoo.com/



[As partes desta mensagem que não continham texto foram removidas]



Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package »

Procedure » Scripts

Res: RES: [oracle_br] [OFF] - Ajuda com GROUP BY em SQL

2007-11-14 Por tôpico Pedro de Souza Silva Junior
 Acabei conseguindo acertar o SQL.
Após fazer a alteração de colocar o GROUP BY depois do WHERE deu o seguinte 
erro:
Msg 8120, Level 16, State 1, Line 2
Column
'v.codVenda' is invalid in the select list because it is not contained
in either an aggregate function or the GROUP BY clause.
Não foi só esta coluna, foram várias, então inclui essas colunas no GROUP BY e 
funcionou perfeitamente.
Mais uma vez obrigado a todos pela ajuda
:)

- Mensagem original 
De: Wellington Martins Flaviano [EMAIL PROTECTED]
Para: oracle_br@yahoogrupos.com.br
Enviadas: Quarta-feira, 14 de Novembro de 2007 9:48:44
Assunto: RES: [oracle_br] [OFF] - Ajuda com GROUP BY em SQL









  



Pedro.

A principio está com erro de ordem na sintaxe ...

Primeiro voce colocar o WHERE, depois o GROUP BY e por último o ORDER BY



SELECT v.* 

, c.Nome as [Criador]

, u.Nome [Unidade]

, a.Nome as [Alterador]

, ba.Nome AS [Banco]

, cli.Nome as [Cliente]

, (SELECT COUNT(codItem) FROM Itens_Vendas WHERE codVenda = v.codVenda AND 
Excluido = 0) AS [QtdeItem]

, (SELECT Nome FROM Formas_Pagamento WHERE codFormaPgto = v.codFormaPgto 
AND Excluido = 0) AS [FormaPgto]

, vend.Nome as [Vendedor]

, (select codTipoCliente from Clientes where codCliente = v.codCliente AND 
Excluido=0) AS [codTipoCliente]

, (SELECT TOP 1 Comissao FROM Clientes WHERE codCliente = V.codUsuarioCad) 
AS [Comissao] 



FROM (((Vendas v

LEFT JOIN Clientes c ON v.codUsuarioCad = c.codCliente)

INNER JOIN Unidades u ON v.codUnidade = u.codUnidade)

LEFT JOIN Clientes a ON v.codUsuarioCad = a.codCliente)

LEFT JOIN Clientes cli ON v.codCliente = cli.codCliente)

LEFT JOIN Conta_Correntes_ Unidades cun ON v.codConta = cun.codConta)

LEFT JOIN Bancos ba ON cun.codBanco = ba.codBanco)

LEFT JOIN Clientes vend ON v.codVendedor = vend.codCliente)



WHERE v.Excluido = 0



GROUP BY FormaPgto



ORDER BY v.dtVenda DESC



Testa ai 



[]'s

Wellington



-Mensagem original -

De: [EMAIL PROTECTED] os.com.br [mailto:[EMAIL PROTECTED] os.com.br] Em nome de 
Pedro de Souza Silva Junior

Enviada em: terça-feira, 13 de novembro de 2007 12:34

Para: OracleBr

Assunto: [oracle_br] [OFF] - Ajuda com GROUP BY em SQL



Pessoal, tenho uma clausula SQL onde preciso fazer uma agrupamento pelo campo 
forma de pagamento, mais está me retornando erro, será que alguem poderia me 
dar uma orientação de como conseguir executar esta query?

Estou usando SQL Server, mais como se trata de SQL acho que não haveria 
problema em pedir ajuda aos amigos de ORACLE. :)



SELECT v.* 

, c.Nome as [Criador]

, u.Nome [Unidade]

, a.Nome as [Alterador]

, ba.Nome AS [Banco]

, cli.Nome as [Cliente]

, (SELECT COUNT(codItem) FROM Itens_Vendas WHERE codVenda = v.codVenda AND 
Excluido = 0) AS [QtdeItem]

, (SELECT Nome FROM Formas_Pagamento WHERE codFormaPgto = v.codFormaPgto 
AND Excluido = 0) AS [FormaPgto]

, vend.Nome as [Vendedor]

, (select codTipoCliente from Clientes where codCliente = v.codCliente AND 
Excluido=0) AS [codTipoCliente]

, (SELECT TOP 1 Comissao FROM Clientes WHERE codCliente = V.codUsuarioCad) 
AS [Comissao] 



FROM (((Vendas v

LEFT JOIN Clientes c ON v.codUsuarioCad = c.codCliente)

INNER JOIN Unidades u ON v.codUnidade = u.codUnidade)

LEFT JOIN Clientes a ON v.codUsuarioCad = a.codCliente)

LEFT JOIN Clientes cli ON v.codCliente = cli.codCliente)

LEFT JOIN Conta_Correntes_ Unidades cun ON v.codConta = cun.codConta)

LEFT JOIN Bancos ba ON cun.codBanco = ba.codBanco)

LEFT JOIN Clientes vend ON v.codVendedor = vend.codCliente)



GROUP BY FormaPgto



WHERE v.Excluido = 0  ORDER BY v.dtVenda DESC



Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento!

http://br.mail. yahoo.com/



[As partes desta mensagem que não continham texto foram removidas]



Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package » 

Procedure » Scripts » Tutoriais acesse: 

http://www.oraclebr .com.br/codigo/ ListaCodigo. php

 - - - - - -

Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.

Acesse: http://www.mail- archive.com/ oracle_br@ yahoogrupos. com.br/

 - - - - - -

O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 

http://www.oraclebr .com.br/

 - - - - - -

Links do Yahoo! Grupos



Esta mensagem pode conter informação confidencial e/ou privilegiada. Se você 
não for o destinatário ou a pessoa autorizada a receber esta mensagem, não pode 
usar, copiar ou divulgar as informações nela contidas ou tomar qualquer ação 
baseada nessas informações. Se você recebeu esta mensagem por engano, por favor 
avise imediatamente o remetente, respondendo o