Esta es la consulta:
Código SQL
[-]
SELECT SUM(e.DEBITO-e.CREDITO) AS SALDO, e.ID_AUXILIAR,e.ID_EMPRESA_CRUCE, e.ID_SUCURSAL_CRUCE,e.ID_TIPO_DOC_CRUCE, e.numero_cruce, E.CUOTA_CRUCE,
d.fecha, d.vencimiento,e.id_tercero,e.ID_SUCURSAL_TERCERO, E.ID_VENDEDOR FROM CUENTAS_POR_TERCERO e , cuentas_por_tercero d
where e.ID_EMPRESA_CRUCE=d.ID_EMPRESA and e.ID_SUCURSAL_CRUCE=d.ID_SUCURSAL AND E.CUOTA_CRUCE=D.CUOTA
and e.ID_TIPO_DOC_CRUCE= d.id_tipo_doc and e.numero_cruce=d.numero AND e.ID_EMPRESA = 1 AND E.ID_SUCURSAL=1
and e.id_tercero =1 AND E.ID_VENDEDOR=1 AND E.ID_SUC_VENDEDOR=1
and e.id_sucursal_tercero=1 and e.id_auxiliar =13050501
and (09/16/2004 - d.vencimiento)>= 30 and (09/16/2004 - d.vencimiento)<= 90
GROUP BY e.ID_AUXILIAR,e.ID_EMPRESA_CRUCE, e.ID_SUCURSAL_CRUCE,e.ID_TIPO_DOC_CRUCE,
e.numero_cruce, E.CUOTA_CRUCE , d.fecha, d.vencimiento,e.id_tercero,e.ID_SUCURSAL_TERCERO, E.ID_VENDEDOR
having SUM(e.DEBITO-e.CREDITO)<>0
into :saldo,:id_auxiliar,:id_empresa,:id_sucursal,:id_tipo,:numero,:cuota,:fecha_DOC,:vencimiento,:id_ter cero,:id_sucursal_tercero, :ID_VENDEDOR
los parametros son
Código Delphi
[-]
query2.close;
if (mdId_empresa.asstring<>' ') then
query2.ParamByName('empresa').AsString:=' AND E.ID_EMPRESA='+ mdId_empresa.asstring+ ' ';
if (mdId_sucursal.asstring<>' ') then
query2.ParamByName('sucursal').AsString:=' AND E.ID_SUCURSAL='+ mdId_sucursal.asstring+ ' ';
Query2.ParamByName('modelo').AsInteger:=4;
Query2.ParamByName('no_rango').AsInteger:=4;
query2.ParamByName('PFECHA').AsDate:= int(mdFECHA.AsDateTime);
if (SELECCIONAVENDE='SI') THEN
query2.ParamByName('PVENDEDOR').AsString:=' AND E.VENDEDOR= 1 ';
if (SELECCIONACUENTA='SI') THEN
query2.ParamByName('PCUENTA').AsString:= ' AND E.PCUENTA = 13050501 ';
if (SELECCIONATERC='SI') THEN
query2.ParamByName('PTERCERO').AsString:=' AND E.ID_TERCERO=1 ';
if (SELECCIONASUCTER='SI') THEN
query2.ParamByName('Psuc_TERCERO').AsString:=' AND E.ID_SUCURSAL_TERCERO=1 ';
if (SELECCIONASUCVEND='SI') THEN
query2.ParamByName('Psuc_VENDEDOR').AsString:=' AND E.ID_SUC_VENDEDOR=1 ';
query2.Open;
y sale el error : column unknown 09/16/2004 , cuando llamo al SP desde delphi.
lo que quiere decir que si solo se va a filtrar por rango de fechas y empresa
la consulta que daría de la siguiente manera
Código SQL
[-]
SELECT SUM(e.DEBITO-e.CREDITO) AS SALDO, e.ID_AUXILIAR,e.ID_EMPRESA_CRUCE, e.ID_SUCURSAL_CRUCE,e.ID_TIPO_DOC_CRUCE, e.numero_cruce, E.CUOTA_CRUCE,
d.fecha, d.vencimiento,e.id_tercero,e.ID_SUCURSAL_TERCERO, E.ID_VENDEDOR FROM CUENTAS_POR_TERCERO e , cuentas_por_tercero d
where e.ID_EMPRESA_CRUCE=d.ID_EMPRESA and e.ID_SUCURSAL_CRUCE=d.ID_SUCURSAL AND E.CUOTA_CRUCE=D.CUOTA
and e.ID_TIPO_DOC_CRUCE= d.id_tipo_doc and e.numero_cruce=d.numero AND e.ID_EMPRESA = 1
and ( fecha - d.vencimiento)>= 30 and ( fecha - d.vencimiento)<= 90
GROUP BY e.ID_AUXILIAR,e.ID_EMPRESA_CRUCE, e.ID_SUCURSAL_CRUCE,e.ID_TIPO_DOC_CRUCE,
e.numero_cruce, E.CUOTA_CRUCE , d.fecha, d.vencimiento,e.id_tercero,e.ID_SUCURSAL_TERCERO, E.ID_VENDEDOR
having SUM(e.DEBITO-e.CREDITO)<>0
into :saldo,:id_auxiliar,:id_empresa,:id_sucursal,:id_tipo,:numero,:cuota,:fecha_DOC,:vencimiento,:id_ter cero,:id_sucursal_tercero, :ID_VENDEDOR
Lo que se traduce en que solo quiero pasar los filtros (que aparecen coloreados en la primera consulta) sólo cuando sea necesario.
Muchas gracias por tu paciencia!!