Hola, prueba de esta manera:
Código Delphi
[-]var
vsql : string;
begin
....
vsql := ' SELECT C.IDCARRO, C.NOCARRO, C.INDICECONS, SUM(DHR.KMRECORRIDO), SUM(CO.CONSUMO) ';
vsql := vsql + ' FROM CARRO C INNER JOIN HOJARUTA HR ON HR.IDCARRO = C.IDCARRO ';
vsql := vsql + ' INNER JOIN DESCHOJARUTA DHR ON DHR.IDHOJARUTA = HR.IDHOJARUTA ';
vsql := vsql + ' INNER JOIN CONSUMO CO ON CO.IDCARRO = C.IDCARRO ';
vsql := vsql + ' WHERE CO.FECHA BETWEEN :FECHA1 AND :FECHA2 ';
vsql := vsql + ' GROUP BY C.IDCARRO, C.NOCARRO, C.INDICECONS ';
vsql := vsql + ' ORDER BY C.IDCARRO ';
SQL.Add(vsql);
ParamByName('FECHA1').AsString:=inicio;
ParamByName('FECHA2').AsString:=fin;
Open;
end
Fijate en los espacios al inicio y final de cada vsql, eso te asegura que al concatenar tengas separada tu sql.
Saludos.