procedimiento almacenado para insertar datos

07/10/2003 - 22:40 por Danilo | Informe spam
Hola Amigos nesesito ingresar a una tabla datos de otra
mediante un procedimiento almacenado la tabla origen
contiene diferentes montos para un mismo cliente y quiero
ingresar en la tabla destino un registro con la suma de
todos los montos del cliente que estan en la tabla origen.
Como puedo hacerlo?. a continuacion les pido que porfavor
revisen este procedimiento y me corrigan, gracias.

drop proc credito
go
create proc credito
as
begin
declare @Cliente as int,
@iCantLineas as int,
@fecha as datetime,
@monto as float,
@factura as int,
@tipo as char(3),
@n as char(1),
@sa as char(2),
@dol as char(3),
@app as char(35)

select @tipo = 'N/C',
@n = 'N',
@sa = 'SA',
@dol = 'DOL',
@app = 'ABONAMOS CREDITO A FAVOR';

select @cliente = isnull(min(nocliente),0)
from dbo.ibscreditos
where nocliente > @cliente

while @cliente > 0
begin
/* Obtención de cantidad de líneas
*/
select @iCantLineas = 0
select @iCantLineas = count(*)
from dbo.ibscreditos
where nocliente = @cliente

if @iCantLineas > 0
begin

/* Obtenemos
valores de las líneas actuales */
set rowcount 1

select @cliente =
nocliente, @factura = nofactura, @monto = Sum(total)
from
dbo.ibscreditos
where nocliente =
@cliente
group by
nocliente, nofactura
order by nofactura

set rowcount 0

insert into
Galaxy.documentos_cc(Documento,

tipo,

contrarecibo,

aplicacion,

fecha_documento,

fecha,

MONTO,

SALDO,

monto_local,

saldo_local,

MONTO_DOLAR,

SALDO_DOLAR,

MONTO_CLIENTE,

SALDO_CLIENTE,

tipo_cambio_moneda,

TIPO_CAMBIO_DOLAR,

TIPO_CAMBIO_CLIENT,

TIPO_CAMB_ACT_LOC,

TIPO_CAMB_ACT_DOL,

TIPO_CAMB_ACT_CLI,

SUBTOTAL,

DESCUENTO,

IMPUESTO1,

IMPUESTO2,

RUBRO1,

RUBRO2,

MONTO_RETENCION,

SALDO_RETENCION,

DEPENDIENTE,

FECHA_ULT_CREDITO,

CARGADO_DE_FACT,

APROBADO,

ASIENTO_PENDIENTE,

FECHA_ULT_MOD,

NOTAS,

CLASE_DOCUMENTO,

FECHA_VENCE,

NUM_PARCIALIDADES,

COBRADOR,

USUARIO_ULT_MOD,

MONEDA,

CONDICION_PAGO,

CTA_BANCARIA,

VENDEDOR,

CLIENTE,

CLIENTE_ORIGEN,

CLIENTE_REPORTE,

SUBTIPO)
values(@factura,
@tipo,
NULL,
@APP,
GETDATE(),
GETDATE(),
@monto,
@monto,
0.0,
0.0,
@monto,
@monto,
@monto,
@monto,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
@monto,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
@n,
GETDATE(),
@n,
@n,
@n,
GETDATE(),
NULL,
@n,
GETDATE(),
0,
NULL,
@sa,
@dol,
0,
NULL,
NULL,
@cliente,
@cliente,
@cliente,
0)
end


select @cliente = isnull(min
(nocliente),0)
from dbo.ibscreditos
where nocliente > @cliente

end

end
go
 

Leer las respuestas

#1 Isaias
08/10/2003 - 00:33 | Informe spam
Sorry, no entendi su procedimiento, pero lo que usted
desea hacer, si es que entiendo su problema, se resolveria
asi:

INSERT INTO CLIENTE_ACUMULADO
SELECT CLIENTE,FACTURA, SUM(IMPORTE) FROM CLIENTE_DETALLE
GROUP BY CLIENTE, FACTURA

Suponiendo que la tabla "CLIENTE_ACUMULADO", tuviera solo
3 columnas, CLIENTE, FACTURA Y SUMA de la factura.

¿Esto es lo que desea hacer?

Preguntas similares