Como somar diferente do dbgrid?
Olá amigos do forum, novamente estou aqui para mais uma dúvida, pois o sistema que estou desenvolvendo esta sendo diferente dos meus trabalhos até agora. Então, a dúvida é!!
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.
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
Curtidas 0
Respostas
Edilcimar
11/10/2007
crie mais um campo numérico, aí a cada pedido você vai incrementando ele, aí vc tem a somatória de cada um a qualquer momento
GOSTEI 0
Marco Salles
11/10/2007
Acho que é exemplo clasico de Sql de Agrupamento
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...
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
Junior-programador
11/10/2007
ola amigos, bem eu fiz um campo chamado valor na tabela, que ao inserir a musica, o valor dele é inserido 1, ficaria assim
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.
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
Marco Salles
11/10/2007
ola amigos, bem eu fiz um campo chamado valor na tabela, que ao inserir a musica, o valor dele é inserido 1, ficaria assim
nome - valor
zeze di camargo 1
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
Junior-programador
11/10/2007
Ola amigos do forum, problema resolvido, com a ajuda de um parceito, Adriano, segue abaixo como ficaria
select nomecantor, count(valor)as rank from tbmusica
group by 1
order by rank desc
Funcionou perfeitamente.
Obrigado a todos.
select nomecantor, count(valor)as rank from tbmusica
group by 1
order by rank desc
Funcionou perfeitamente.
Obrigado a todos.
GOSTEI 0
Marco Salles
11/10/2007
Ola amigos do forum, problema resolvido, com a ajuda de um parceito, Adriano, segue abaixo como ficaria
select nomecantor, count(valor)as rank from tbmusica
group by 1
order by rank desc
citação antiga de marco salles
Acho que é exemplo clasico de Sql de Agrupamento
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....
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