Nunca vi isso na vida. A mesma consulta em ambientes diferentes estão resultando resultados diferentes, como pode ser?
select cliente, date_format(data_locacao, '%d/%m/%Y') as data_locacao,
IF(@dev:=DATE_FORMAT(data_devolucao, '%d/%m/%Y'), @dev, '-') AS devolucao, status,
IF(@datas:=(datediff(data_devolucao, data_locacao)), @datas,
IF(@datas:=(datediff(now(), data_locacao)), @datas, 0)) AS diarias,
SUM(@datas*.c.preco) AS pagar
FROM filme f, categoria c
RIGHT JOIN locacao l ON l.id IN (
SELECT locacao FROM filme_locacao WHERE filme = f.id
)
where cliente = 'Joao' and c.id = f.categoria group by status, diarias
esta consulta, feita no QUERY DO MYSQL-FRONT retorna o resultado CORRETO, segue:
"Joao";"16/05/2006";"retornando";9;45.0000000000000000000000000000000
e quando a realizo no ECLIPSE para fins de testes, retorna:
Joao
16/05/2006
-
retornando
9
0.0
Alguém já este ocorrido alguma vez?
try {
sql = "SELECT cliente, DATE_FORMAT(data_locacao, '%d/%m/%Y') AS DATA_LOCACAO, "+
"IF(@dev:=DATE_FORMAT(data_devolucao, '%d/%m/%Y'), @dev, '-') AS devolucao, status, "+
"IF(@datas:=(datediff(data_devolucao, data_locacao)), @datas, "+
"IF(@datas:=(datediff(now(), data_locacao)), @datas, '0')) AS diarias, "+
"SUM(@datas*.c.preco) AS pagar "+
"FROM filme f, categoria c "+
"RIGHT JOIN locacao l ON l.id IN ( "+
"SELECT locacao FROM filme_locacao WHERE filme = f.id "+
") "+
"WHERE cliente = 'Joao' and c.id = f.categoria group by status, diarias";
pstmt = connec.prepareStatement(sql);
result = pstmt.executeQuery(sql);
while(result.next()) {
/*VisualisarLocacoes vl = new VisualisarLocacoes(
result.getString("cliente"),
result.getString("data_locacao"),
result.getString("devolucao"),
result.getInt("diarias"),
result.getFloat("pagar"),
result.getString("status"));
lista.add(vl);*/
System.out.println(result.getString("cliente"));
System.out.println(result.getString("data_locacao"));
System.out.println(result.getString("devolucao"));
System.out.println(result.getString("status"));
System.out.println(result.getInt("diarias"));
System.out.println(result.getFloat("pagar"));
System.out.println("----------------------");
}