Usuário com melhor resposta
filtrar relatorio por data

Pergunta
-
fiz um relatorio assim..
// Primeiro: Define a consulta que preenche
// um DataSet com o conte�do da Tabela de Clientes
string queryvendas;
queryvendas = "SELECT CLIENTES.NOME, VENDA.TIPO_DE_COMPRA ,VENDA.DATA_DE_COMPRA ,VENDA.VALOR_TOTAL FROM CLIENTES CROSS JOIN VENDA WHERE(VENDA.TIPO_DE_COMPRA = 'MasterCard')";
SqlDataAdapter vendasAdapter;
vendasAdapter = new SqlDataAdapter(queryvendas, conexao);
DataSet Ds = new DataSet();
vendasAdapter.Fill(Ds, "CLIENTES");
vendasAdapter.Fill(Ds, "VENDA");
// Criando um novo objeto do tipo do relat�rio criado (RptTelefones)
master rpt = new master();
// Definindo o resultado da busca, como sendo o conte�do do relat�rio
rpt.SetDataSource(Ds);
// Exibindo os dados no relat�rio.
MastercrystalReportViewer.ReportSource = rpt;
}
}porem quero mostra dos ultimos 2 meses, não importanto que mês seja, sempre nessa regra... deu para entender?
obrigado e boa tarde
Aprendendo e evoluindo
Respostas
-
Olá,
Não sei qual campo vc quer os ultimos dois meses, vou supor que seja o Venda.Data_De_Compra
Tente isso:
queryvendas = "SELECT CLIENTES.NOME, VENDA.TIPO_DE_COMPRA ,VENDA.DATA_DE_COMPRA ,VENDA.VALOR_TOTAL FROM CLIENTES CROSS JOIN VENDA WHERE(VENDA.TIPO_DE_COMPRA = 'MasterCard') AND Venda.Data_De_Compra >= DATEADD(month, -2, GETDATE()) ";
A função DateAdd adiciona ou remove partes de uma data, partes quer dizer dia, mes, ano etc. Então pegamos a data de hoje e subtraimos menos 2 meses, assim, pegamos somente as vendas que sejam maior ou igual a este resultado.
Espero ter ajudado,
t+
- Sugerido como Resposta AndreAlvesLimaModerator segunda-feira, 14 de junho de 2010 23:47
- Marcado como Resposta AndreAlvesLimaModerator quinta-feira, 24 de junho de 2010 23:36
-
Prezado,
Tente fazer um INNER JOIN ao inves de CROSS JOIN...
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima- Sugerido como Resposta AndreAlvesLimaModerator quinta-feira, 17 de junho de 2010 15:49
- Marcado como Resposta AndreAlvesLimaModerator quinta-feira, 24 de junho de 2010 23:36
Todas as Respostas
-
Olá,
Não sei qual campo vc quer os ultimos dois meses, vou supor que seja o Venda.Data_De_Compra
Tente isso:
queryvendas = "SELECT CLIENTES.NOME, VENDA.TIPO_DE_COMPRA ,VENDA.DATA_DE_COMPRA ,VENDA.VALOR_TOTAL FROM CLIENTES CROSS JOIN VENDA WHERE(VENDA.TIPO_DE_COMPRA = 'MasterCard') AND Venda.Data_De_Compra >= DATEADD(month, -2, GETDATE()) ";
A função DateAdd adiciona ou remove partes de uma data, partes quer dizer dia, mes, ano etc. Então pegamos a data de hoje e subtraimos menos 2 meses, assim, pegamos somente as vendas que sejam maior ou igual a este resultado.
Espero ter ajudado,
t+
- Sugerido como Resposta AndreAlvesLimaModerator segunda-feira, 14 de junho de 2010 23:47
- Marcado como Resposta AndreAlvesLimaModerator quinta-feira, 24 de junho de 2010 23:36
-
-
-
Prezado,
Tente fazer um INNER JOIN ao inves de CROSS JOIN...
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima- Sugerido como Resposta AndreAlvesLimaModerator quinta-feira, 17 de junho de 2010 15:49
- Marcado como Resposta AndreAlvesLimaModerator quinta-feira, 24 de junho de 2010 23:36
-
-
Thiago,
Peço que inicie outra thread com a sua nova dúvida... Isso ajuda na organização do fórum...
Obrigado.
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima