[Resolvido] Iniciando uma consulta com os últimos 30 dias

Olá amigos, estou com dificuldades de entender como devo proceder para fazer o seguinte:

tenho uma consulta com o seguinte SQL:
SELECT
DATA,
LITROS,
VALOR
FROM
VIEW_VENDAS_GERAL_LITROS_VALOR
WHERE DATA BETWEEN ‘[DATA1]’ AND ‘[DATA2]’

nesta consulta só vai constar o gráficos de vendas dos últimos 30 dias. Já coloquei as quebras, os totalizadores e tudo 100%. O grande impecílio é o fato de toda vez que executo o scriptcase me exibe uma tela para eu preencher a DATA1 e a DATA2 e aí funciona. Onde posso inicializar estes parâmetros como DATA1=HOJE-30dias e DATA2=HOJE.

[]s
Edson Marcelo

Ola Edson Marcelo você poderia dar mais detalhes de sua App, como ela inicia? si eh através de um botão, link, app inicial?..
Você pode tentar no OnAplicationInt declarar as variáveis [DATA1] y [DATA2] ou até mesmo quando fazer o login no sistema.
Outra opção que você pode fazer eh colocar direto no select o calculo de data caso a consulta sempre devera trazer os últimos 30 dias, não sei que Banco de Dados você esta usando mais si for MySQL você pode deixar assim

SELECT DATA, LITROS, VALOR FROM VIEW_VENDAS_GERAL_LITROS_VALOR WHERE DATA BETWEEN /*aqui calculamos 1 mês atras*/ date_sub(curdate(), interval 1 month) AND /*ate o dia de hoje*/ curdate();

Willian, obrigado pela resposta. Funcionaria sim, mas o que eu quero é que funcione para qualquer banco por isso preciso manipular via programação.

[]s

Depois de tanto pesquisar achei a solução com o Prof. Leonardo do curso http://www.cursoscriptcase.com/, que recomendo a todos q estão iniciando. No evento onScriptInit:

$data2 = date(‘d/m/Y’);
$data1 = sc_date($data2, “dd/mm/aaaa”, “-”, 30, 0, 0);

$data1 = sc_date_conv($data1,“dd/mm/aaaa”,“db_format”);
$data2 = sc_date_conv($data2,“dd/mm/aaaa”,“db_format”);

$sql = " data between ‘$data1’ and ‘$data2’ ";

sc_alert($sql);

if ($sql <> “”)
{
if (empty({sc_where_atual}))
{
sc_select_where(add) = " where ".$sql;
}
else
{
sc_select_where(add) = " AND ".$sql;
}
}

[Code]if (empty({sc_where_atual})) {

 sc_select_where(add) = " where  data between  curdate() - Interval 30 day AND curdate() ";

} else {

 sc_select_where(add) = " AND data between  curdate() - Interval 30 day AND curdate() "; 

}[/code]

O código acima irá funcionar também e ele esta mais racional.

Haroldo, obrigado pela resposta. Mas esse código não funciona em qualquer banco de dados.

é que não faz sentido isso:

$sql = " data between ‘$data1’ and ‘$data2’ ";

sc_alert($sql);

if ($sql <> “”) //<-- $sql com certeza será diferente de <>
{