29/09/2011, 14:29
|
| | | Fecha de Ingreso: agosto-2011
Mensajes: 103
Antigüedad: 13 años, 4 meses Puntos: 4 | |
Stored procedure HOLA, COMO ESTAN, NECESITO UNA AYUDA TENGO ESTE STORED PROCEDURE
Código:
ALTER PROCEDURE Precompromiso
@tipo bit,--- diferencia entre proyecto o accion centralizada
@ac_cod int, --- accion espedicica,
@ac_proy_cod varchar(20), ---proyecto o accion centralizada
@centro int,
@id_item varchar(40), ---partida
@pre_an_o int ---año
AS
declare
@monto_prog_anual decimal(19, 4),
@monto_ced decimal(19, 4) ,
@monto_rec decimal(19, 4) ,
@monto_ajust decimal(19, 4) ,
@neto_prec decimal(19, 4) ,
@ejec_prec decimal(19, 4) ,
@compromiso decimal(19, 4) ,
@disponible decimal(19, 4)
SELECT @monto_prog_anual=
CASE @tipo
WHEN 0 THEN (SELECT ISNULL(SUM(pacc_monto),0) as monto_prog_anual
FROM SIPREFII_Proy_Acc_pres a,SIPREFII_PARTIDAS b
WHERE a.ID_ITEM = @id_item
AND a.acc_cod= @ac_cod
AND a.proy_cod=@ac_proy_cod
AND a.pre_an_o=@pre_an_o
AND a.ID_ITEM=b.ID_ITEM
AND b.CONSOLIDADA<>'1'
AND a.pacc_mes BETWEEN 1 and 12)
WHEN 1 THEN (SELECT ISNULL(SUM(pac_monto),0) as monto_prg_anual
FROM SIPREFII_AC_pres a,SIPREFII_PARTIDAS b
WHERE a.ID_ITEM = @id_item
AND a.ace_cod= @ac_cod
AND a.ac_cod=@ac_proy_cod
AND a.POA=@pre_an_o
AND a.ID_ITEM=b.ID_ITEM
AND b.CONSOLIDADA<>'1'
AND a.pac_mes BETWEEN 1 and 12)
END
SET @monto_ced=(SELECT ISNULL(sum(b.monto),0) as suma
FROM SIPREFII_traspaso a,SIPREFII_traspaso_dt b
WHERE b.id_item =@id_item
AND b.acesp_cod= @ac_cod
AND b.ac_proy_cod=@ac_proy_cod
AND a.pres_ano=@pre_an_o
AND b.id=@centro
AND modi_activo=1
AND b.ced_rec_tipo='1'
AND a.modi_cod=b.modi_cod)
SET @monto_rec=(SELECT ISNULL(sum(b.monto),0) as suma
FROM SIPREFII_traspaso a,SIPREFII_traspaso_dt b
WHERE b.id_item =@id_item
AND b.acesp_cod= @ac_cod
AND b.ac_proy_cod=@ac_proy_cod
AND a.pres_ano=@pre_an_o
AND b.id=@centro
AND modi_activo=1
AND b.ced_rec_tipo='0'
AND a.modi_cod=b.modi_cod)
SET @monto_ajust= @monto_prog_anual + (@monto_rec - @monto_ced)
SET @neto_prec= (SELECT ISNULL(SUM(b.monto),0) as suma
FROM SIPREFII_Precompromiso a,SIPREFII_Precompromiso_dt b
WHERE b.id_item = @id_item
AND a.pres_ano=@pre_an_o
AND b.acesp_cod= @ac_cod
AND b.ac_proy_cod=@ac_proy_cod
AND b.id=@centro
AND prec_activo=1
AND a.pres_ano=b.pres_ano
AND a.prec_cod=b.prec_cod)
SET @ejec_prec= (select isnull(sum(monto),0)as suma
FROM SIPREFII_Compromiso a,SIPREFII_Compromiso_dt b
WHERE a.pres_ano=b.pres_ano
AND a.pres_ano=@pre_an_o
AND a.comp_cod=b.comp_cod
and b.comp_cod in (select DISTINCT(a.comp_cod)
from SIPREFII_Compromiso a,SIPREFII_Compromiso_dt b
where a.comp_cod=b.comp_cod
and a.pres_ano=b.pres_ano
and a.pres_ano = @pre_an_o
and a.comp_activo = 1
and a.comp_cod in (select a.prec_cod
from SIPREFII_Precompromiso a,SIPREFII_PreCompromiso_dt b
where a.pres_ano = b.pres_ano
and a.prec_cod = b.prec_cod
and a.pres_ano = @pre_an_o
and a.prec_activo = 1 ))
and b.id_item = @id_item
AND b.acesp_cod= @ac_cod
AND b.ac_proy_cod=@ac_proy_cod
and b.id=@centro
and a.pres_ano =@pre_an_o
and b.ac_proy_tipo=1)
SET @compromiso= (SELECT ISNULL(SUM(b.monto),0) as suma
FROM SIPREFII_Compromiso a,SIPREFII_Compromiso_dt b
WHERE a.pres_ano=@pre_an_o
AND b.id_item =@id_item
AND b.acesp_cod= @ac_cod
AND b.ac_proy_cod=@ac_proy_cod
AND b.id=@centro
AND a.pres_ano=b.pres_ano
AND comp_activo=1
AND a.comp_cod=b.comp_cod )
SET @disponible= @monto_ajust - (@neto_prec - @ejec_prec) - @compromiso
SELECT @disponible
GO
Y NECESITO MOSTRAR LOS DATOS QUE ME DA DISPONIBILIDAD EN VB 6.0, PARA EL CUAL UTILIZO
Código:
Dim cmd As New Command
Dim consulta As New Recordset
cmd.CommandText = "{? = call precompromiso (?,?,?,?,?,?)}"
Set cmd.ActiveConnection = cn
cmd.Parameters.Refresh
cmd(1) = 0
cmd(2) = 3 'cmb_unidad_eje.ListIndex
cmd(3) = "112259" 'lbl_proy_cod
cmd(4) = 40 'arr_centro_proy_id(cmb_unidad_eje.ListIndex)
cmd(5) = "4.03.18.01.00" 'txt_partida
cmd(6) = 2011 'an_o_actual
Set consulta = cmd.Execute
MsgBox (consulta(0))
help!!!
PERO NO ME ARROJA NINGUN VALOR... ALGUIEN PODRA AYUDARME |