Usuário com melhor resposta
Dificuldade com agrupamento

Pergunta
-
Pessoal, eu preciso agrupar o resultado dessa query somente pela moeda só que não estou obtendo sucesso. Se puderem me ajudar ficarei grato.
segue o código:
SELECT [m].[moeda], [tp].[custo_atual] AS Custo_atual , ((([tp].[desmembrar] * COUNT([tp].[idmoeda_setape]))/100) * custo_atual) AS Desmembrar, ([tp].[custo_atual] - ((([tp].[desmembrar] * COUNT([tp].[idmoeda_setape]))/100) * custo_atual)) AS Tot_desmembrado FROM @tpArmazenaValores [tp] INNER JOIN [dbo].[tbmoeda] [m] ON [m].[IdMoeda_setape] = [tp].[idmoeda_setape] GROUP BY [tp].[custo_atual], [tp].[desmembrar], [m].[moeda] Resultado: moeda Custo_atual Desmembrar Tot_desmembrado Dolar 500,00000 83,33000 416,67000 Real 300,00000 24,99900 275,00100 Real 300,00000 25,00000 275,00000
Resultado Almejado:
moeda Custo_atual Desmembrar Tot_desmembrado Dolar 200,00000 40,00000 160,00000 Real 100,00000 20,00000 80,00000
Obrigado
- Editado Evertoum quinta-feira, 17 de maio de 2012 20:52
Respostas
-
Evertoum,
Seria mais interessante se você postasse a sua estrutura, ou pelo menos, parte dela e dados de exemplo para que possamos analisar melhor o caso. Pela sua query, para a moeda Dolar, você REALMENTE possui uma linha com custo atual de 500,00 e outra de Real com custo Atual de 300,00, já que você está "quebrando" com group by pelo Custo Atual, pelo campo Desmembrar e finalmente pela moeda. Isso significa que a sua query vai ver todos os custo_atual e agrupá-los, depois agrupar pelo Desmembrar e somente ao final pela Moeda.
Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008
- Sugerido como Resposta Heloisa Pires terça-feira, 5 de junho de 2012 17:49
- Marcado como Resposta Heloisa Pires sexta-feira, 8 de junho de 2012 14:48
-
Evertoum,
Então se você deseja agrupar pela coluna Moeda, teóricamente para que o agrupamento possa ser realizado é necessário que você venha a utilizar uma função de agregação para esta coluna.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Sugerido como Resposta Heloisa Pires terça-feira, 5 de junho de 2012 17:49
- Marcado como Resposta Heloisa Pires sexta-feira, 8 de junho de 2012 14:48
Todas as Respostas
-
Evertoum,
Seria mais interessante se você postasse a sua estrutura, ou pelo menos, parte dela e dados de exemplo para que possamos analisar melhor o caso. Pela sua query, para a moeda Dolar, você REALMENTE possui uma linha com custo atual de 500,00 e outra de Real com custo Atual de 300,00, já que você está "quebrando" com group by pelo Custo Atual, pelo campo Desmembrar e finalmente pela moeda. Isso significa que a sua query vai ver todos os custo_atual e agrupá-los, depois agrupar pelo Desmembrar e somente ao final pela Moeda.
Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008
- Sugerido como Resposta Heloisa Pires terça-feira, 5 de junho de 2012 17:49
- Marcado como Resposta Heloisa Pires sexta-feira, 8 de junho de 2012 14:48
-
Evertoum,
Então se você deseja agrupar pela coluna Moeda, teóricamente para que o agrupamento possa ser realizado é necessário que você venha a utilizar uma função de agregação para esta coluna.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Sugerido como Resposta Heloisa Pires terça-feira, 5 de junho de 2012 17:49
- Marcado como Resposta Heloisa Pires sexta-feira, 8 de junho de 2012 14:48