como exibir consulta com ranking entre duas datas?
Olá amigos do forum, uma boa tarde a todos.
Vamos as dúvidas.
Preciso emitir um relatório das músicas mais pedidas durante um período, só que com rankin, a minha tabela, é assim
id_musica
musida
data
valor
quando é pedido uma música, é inserida aqui o nome da musica e o valor de número 1, sempre será inserido o valor 1. quando faço a consulta via sql o código é assim
Código:
ai ao invés dele exibir assim:
zeze di camargo - 1
zeze di camargo - 1
vanessa camargo - 1
ele irá exibir assim
zeze di camargo 2
vanessa camargo 1
entaum criei uma tela de consulta e coloquei dois timerpicker para fazer o ranking entre as datas pedidas, pois tem o timerdatainicio e timerdatafinal
como fazer essa consulta?, como colocar esse código no botao, ou faremos direto na string da sql?
aguardo a resposta dos amigos, obrigado.
Vamos as dúvidas.
Preciso emitir um relatório das músicas mais pedidas durante um período, só que com rankin, a minha tabela, é assim
id_musica
musida
data
valor
quando é pedido uma música, é inserida aqui o nome da musica e o valor de número 1, sempre será inserido o valor 1. quando faço a consulta via sql o código é assim
Código:
select nomecantor, count(nomecantor)as rank from arquitetos group by 1 order by rank desc
ai ao invés dele exibir assim:
zeze di camargo - 1
zeze di camargo - 1
vanessa camargo - 1
ele irá exibir assim
zeze di camargo 2
vanessa camargo 1
entaum criei uma tela de consulta e coloquei dois timerpicker para fazer o ranking entre as datas pedidas, pois tem o timerdatainicio e timerdatafinal
como fazer essa consulta?, como colocar esse código no botao, ou faremos direto na string da sql?
aguardo a resposta dos amigos, obrigado.
Junior-programador
Curtidas 0
Respostas
Orc
29/10/2007
da um where no fim do sql:
where data between :dat1 and :dat2
parambyname(´dat1´).asdatetime := datetimepicker1.date;
parambyname(´dat2´).asdatetime := datetimepicker2.date;
tabela.open;
where data between :dat1 and :dat2
parambyname(´dat1´).asdatetime := datetimepicker1.date;
parambyname(´dat2´).asdatetime := datetimepicker2.date;
tabela.open;
GOSTEI 0
Junior-programador
29/10/2007
infelizmente nao deu certo, ele me da o erro de token:where
novamente segue abaixo a string da sql
este código esta direto na query, e tenho um botao na tela e mais dois timepicker, como fazer consulta, entre datas.
obrigado amigo.
novamente segue abaixo a string da sql
select Nome_maispedidas,count(Valor)as rank from tbmusicas group by nome_maispedidas order by rank desc
este código esta direto na query, e tenho um botao na tela e mais dois timepicker, como fazer consulta, entre datas.
obrigado amigo.
GOSTEI 0
Orc
29/10/2007
usa mais ou menos assim ao inves do where usa o having
SELECT
IdFamilia, Sum(Stock) AS StockAtual
FROM
Produtos
GROUP BY
IdFamilia
HAVING
StockAtual > 100
SELECT
IdFamilia, Sum(Stock) AS StockAtual
FROM
Produtos
GROUP BY
IdFamilia
HAVING
StockAtual > 100
GOSTEI 0
Junior-programador
29/10/2007
Mudei para o codigo abaixo, mas da erro token - select
aguardo retorno, obrigado.
query1.Close; query1.sql.add(´select nome_maispedidas, teste, count(valor)as rank from tbmusicas´); query1.sql.add(´having data_maispedidas between :pdataini and :pdatafin´); query1.SQL.Add(´parambyname(pdataini).asdatetime := datetimepicker1.date´); query1.SQL.Add(´parambyname(pdatafin).asdatetime := datetimepicker2.date´); query1.SQL.add(´group by nome_maispedidas´); query1.sql.add(´order by rank desc´); query1.Open;
aguardo retorno, obrigado.
GOSTEI 0
George_piaulino
29/10/2007
query1.parambyname(pdataini).asdatetime := datetimepicker1.date query1.parambyname(pdatafin).asdatetime := datetimepicker2.date+´ 23:59:59´
GOSTEI 0