Hola a todos
He implementado el codigo en delphi me quedaria asi
Código Delphi
[-]with datamodule29.Query2 do
Begin
CLose;
SQl.Clear;
SQL.Add('Drop TABLE TTLCON, TTLKM, KM_CON ');
ExecSQL;
Close;
SQl.Clear;
SQL.Add('Select idmes from mes where mes=
mes');
ParamByName('pmes').AsString:=suiDBLookupComboBox2.Text;
Open;
mes:=FieldByName('idmes').AsInteger;
Close;
SQl.Clear;
SQL.Add('Select * from mes where idmes=
idmes');
ParamByName('pidmes').AsInteger:=mes;
Open;
inicio:=FieldByName('inicio').AsString;
fin:=FieldByName('fin').AsString;
Close;
SQL.Clear;
SQL.Add('CREATE VIEW TTLCON AS SELECT carro.idcarro, Sum(CON.consumo) AS SumaDeconsumo');
SQL.Add('FROM carro INNER JOIN CONSUMO AS CON ON carro.idcarro = CON.idcarro');
SQL.Add('WHERE (((CON.fecha) Between #'+ inicio + '# And #'+ fin + '#))');
SQL.Add('GROUP BY carro.idcarro');
ExecSQL;
Close;
SQL.Clear;
SQL.Add('CREATE VIEW TTLKM AS SELECT carro.idcarro, Sum(DHR.Kmrecorrido) AS SumaDeKmrecorrido');
SQL.Add('FROM (carro INNER JOIN HOJARUTA AS HR ON carro.idcarro = HR.idcarro) INNER JOIN DESCHOJARUTA AS DHR ON HR.idhojaruta = DHR.idhojaruta');
SQL.Add('WHERE (((DHR.fecha) Between #'+ inicio + '# And #'+ fin + '#))');
SQL.Add('GROUP BY carro.idcarro');
ExecSQL;
Close;
SQL.Clear;
SQL.Add('CREATE VIEW KM_CON AS SELECT carro.idcarro, Sum(TTLKM.SumaDeKmrecorrido) AS SumaDeSumaDeKmrecorrido, Sum(TTLCON.SumaDeconsumo) AS SumaDeSumaDeconsumo, carro.nocarro,
carro.indicecons');
SQL.Add('FROM (TTLCON INNER JOIN carro ON TTLCON.idcarro = carro.idcarro) INNER JOIN TTLKM ON carro.idcarro = TTLKM.idcarro');
SQL.Add('GROUP BY carro.idcarro, carro.nocarro, carro.indicecons');
SQL.Add('ORDER BY carro.idcarro;');
ExecSQL;
end;
el problema ahora es que cuanto le paso los parametros de fecha en access
Código SQL
[-]SELECT carro.idcarro, Sum(DHR.Kmrecorrido) AS SumaDeKmrecorrido
FROM (carro INNER JOIN HOJARUTA AS HR ON carro.idcarro = HR.idcarro) INNER JOIN DESCHOJARUTA AS DHR ON HR.idhojaruta = DHR.idhojaruta
WHERE (((DHR.fecha) Between #1/2/2012# And #2/29/2012#))
GROUP BY carro.idcarro;
en ves de
Código SQL
[-]
SELECT carro.idcarro, Sum(DHR.Kmrecorrido) AS SumaDeKmrecorrido
FROM (carro INNER JOIN HOJARUTA AS HR ON carro.idcarro = HR.idcarro) INNER JOIN DESCHOJARUTA AS DHR ON HR.idhojaruta = DHR.idhojaruta
WHERE (((DHR.fecha) Between #1/2/2012# And #29/2/2012#))
GROUP BY carro.idcarro;
es decir que lo coje en ves de DD/MM/YYYY asi MM/DD/YYYY
Alguna solucion???