Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

natalia

Inner join com group by

Recommended Posts

Oi pessoal, como faço um INNER JOIN com GROUP BY. Eu preciso de todos os dados da tabela RMA e todos da tabela Status. Mas preciso agrupar o Codigo do Pedido que está na tabela RMA.SELECT Status.*, RMA.* COUNT(RMA.Codigo_Pedido) AS TOTAL FROM Status INNER JOIN RMAON Status.Codigo_Status = RMA.Codigo_StatusWHERE RMA.Codigo_Status = 2 GROUP BY RMA.Codigo_Pedido ORDER BY RMA.Codigo_Pedido Alguém sabe fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

se não me engano, o group by não funciona com *, então você teria que explicitar cada um dos campos, depois é normal, group by tabelax.campoy

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom pelo que sei o GROUP BY precisa de uma função de agregação como o count, sum, max, etc. Senão ele não funciona, já tentei fazer sem e não consegui. Sem o count não vai rolar, mas obrigada pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até onde sei, não existe problema no Count junto com group by, mas na sua sql está faltando uma ",", olhe:

SELECT Status.*, RMA.*, COUNT(RMA.Codigo_Pedido) AS TOTAL

FROM Status INNER JOIN RMA

ON Status.Codigo_Status = RMA.Codigo_Status

WHERE RMA.Codigo_Status = 2

GROUP BY RMA.Codigo_Pedido ORDER BY RMA.Codigo_Pedido

Ou você já tinha corrigido isso antes?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Sinceramente, não vejo situação alguma em que se necessite de utilizar um GROUP para contar a quantidade de um determinado registro (utilizar o COUNT). Veja, acho que para isso você poderia fazer o seguinte:

 

Rs.Open("SELECT Status.*, RMA.*FROM Status INNER JOIN RMA ON Status.Codigo_Status = RMA.Codigo_Status WHERE RMA.Codigo_Status = 2 GROUP BY RMA.Codigo_Pedido ORDER BY RMA.Codigo_Pedido")quantos = UBOUND(Rs.getrows(), 2) +1

Prontinho, aí está seu recordset armazenado na variável "Rs", e a quantidade de registros armazenado em "quantos"... Espero que isso possa lhe ser útil.

 

Abraços,

Fernando Botelho

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,Sinceramente, não vejo situação alguma em que se necessite de utilizar um GROUP para contar a quantidade de um determinado registro (utilizar o COUNT). Veja, acho que para isso você poderia fazer o seguinte:

Rs.Open("SELECT Status.*, RMA.*FROM Status INNER JOIN RMA ON Status.Codigo_Status = RMA.Codigo_Status WHERE RMA.Codigo_Status = 2 GROUP BY RMA.Codigo_Pedido ORDER BY RMA.Codigo_Pedido")quantos = UBOUND(Rs.getrows(), 2) +1
Prontinho, aí está seu recordset armazenado na variável "Rs", e a quantidade de registros armazenado em "quantos"... Espero que isso possa lhe ser útil.Abraços,Fernando Botelho
eu concordo com o Fernando BAcho que na forma que ele fez, sua consulta será mas eficaz. :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.