Fórum Como somar diferente do dbgrid? #347253
11/10/2007
0
tenho um dbgrid onde fica gravado as músicas pedidas pelo ouvinte, em uma consulta eu faço por exemplo em um determinado dia, de uma determinada hora, fico sabendo quais são as músicas pedidas, até ai tudo bem, o problema que estou tendo é, como fazer para juntar vários pedidos em uma linha e mostrar o valor total num campo, exemplo
ele esta assim agora no dbgrid
|Descrição |valor
|Zeze di camargo |1
|Zeze di camargo |1
|Zeze di camargo |1
|Ivete Sangalo |1
|Ivete Sangalo |1
|Gino e geno |1
e gostaria que ficassse assim no dbgrid
|Descrição |valor
|Zeze di camargo |3
|Ivete Sangalo |2
|Gino e geno |1
do jeito que esta agora, o ouvinte pede zeze di camargo entaum no dbgrid aparece essa musica varias vezes, entaum eu gostaria que o sistema pegasse todas essas músicas e mostrasse somente uma vez, e no campo valor mostrasse a quantidade que ela foi pedida, para eu ter uma idéia de quantas vezes esta sendo pedida, ao invez de contar uma por uma. eu criei na tabela de pedido o valor 1, por exemplo, quando se pede a musica ele ja insere no campo vaor da tabela 1, entaum todas as musicas tem o valor 1.
Obrigado a todos e aguardo a ajuda.
Junior-programador
Curtir tópico
+ 0Posts
11/10/2007
Edilcimar
Gostei + 0
11/10/2007
Marco Salles
So que , deveria cada cantor ter um Id , ficaria bem mais fácil agrupar
com o Id do cantor de que pelo nome dos mesmos....
Quanto ao Underline edicilmar , acho que so o Guinther..... Bem , mandar uma carta para redação para ver se é possivel. Ate o momento acho que não...
Gostei + 0
12/10/2007
Junior-programador
nome - valor
zeze di camargo 1
eu nao posso ir somando esses valores na tabela, por causa das consultas, por exemplo, se eu fizer uma consulta de um determinado horario das 3 as 6, eu quero saber quais as musicas mais pedidas daquele horario, e seria a mesma coisa da data, como o nome sempre sera igual, o sql faria uma comparacao com a desc e juntaria tudo só e somando os valores.
obrigado.
Gostei + 0
12/10/2007
Marco Salles
aminha sugestão é que voce divida o problema em tres etapas
[color=darkred:44d37778d1]1)estrutura das tabelas[/color:44d37778d1]
Acho que seria mais interressante voce ter um campo Id_Cantor nesta tabela e em outra tabela com o Nome dos Cantores... Aonde voce teria um relacionamento entre essas duas tabelas ....
[color=red:44d37778d1]2)Sql de Agrupamento seguido de condição[/color:44d37778d1]
o proximo passo e fazer um Sql que agrupe esses Id sobre uma determinada condição <uma determinada Data entre um Intervalo de Horas>
[color=red:44d37778d1]3)interJoin entre essas tabelas[/color:44d37778d1]
Feito isto , para a apresentar mais amigavelmente fazer um InterJoin, para apresentar ao inves dos id_cantor o Nome dos cantores
nesse proprio site tem vários exemplos de cada uma dessas etapas, e acredito ser uma boa solução
boa Sorte...
Gostei + 0
15/10/2007
Junior-programador
select nomecantor, count(valor)as rank from tbmusica
group by 1
order by rank desc
Funcionou perfeitamente.
Obrigado a todos.
Gostei + 0
15/10/2007
Marco Salles
citação antiga de marco salles
exemplo clássico de agrupamento né.. So que esta agrupando por nome
questão de estrutura.... eu particularmente prefiro ter uma tabela so para nome de cantores.. enfim , ...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)