Ver Mensaje Individual
  #5 (permalink)  
Antiguo 08/03/2007, 11:37
Pelao
 
Fecha de Ingreso: abril-2003
Mensajes: 260
Antigüedad: 22 años, 1 mes
Puntos: 1
Re: Error cargar datos a una tabla

procedimiento digo a esto que me realiza las cuentas entre los campos:

Código:
CREATE PROCEDURE dbo.SPTableroControl
@Dia1		money,
@Dia2		money,
@Dia3		money,
@Dia4		money,
@Dia5		money,
@Dia6		money,
@Dia7		money,
@Dia8		money,
@Dia9		money,
@Dia10		money,
@Dia11		money,
@Dia12		money,
@Dia13		money,
@Dia14		money,
@Dia15		money,
@Dia16		money,
@Dia17		money,
@Dia18		money,
@Dia19		money,
@Dia20		money,
@Dia21		money,
@Dia22		money,
@Dia23		money,
@Dia24		money,
@Dia25		money,
@Dia26		money,
@Dia27		money,
@Dia28		money,
@Dia29		money,
@Dia30		money,
@Dia31		money,
@DesdeFecha	char(10),
@HastaFecha	char(10),
@chk11		int,
@chk12		int,
@chk21		int,
@chk22		int,
@chk31		int,
@chk32		int,
@chk41		int,
@chk42		int,
@chk51		int,
@chk52		int,
@chk61		int,
@chk62		int,
@chk71		int,
@chk72		int,
@chk81		int,
@chk82		int,
@chk91		int,
@chk92		int
AS

declare @BME money
select @BME = 0
select @BME = @Dia1 + @Dia2 + @Dia3 + @Dia4 + @Dia5 + @Dia6 + @Dia7 + @Dia8 + @Dia9 + @Dia10 + @Dia11 + @Dia12 + @Dia13
select @BME = @BME + @Dia14 + @Dia15 + @Dia16 + @Dia17 + @Dia18 + @Dia19 + @Dia20 + @Dia21 + @Dia22 + @Dia23 + @Dia24 
select @BME = @BME + @Dia25 + @Dia26 + @Dia27 + @Dia28 + @Dia29 + @Dia30 + @Dia31

SELECT 	convert(int, (sum(tsb) - sum(cossbeb))) as 'Beneficio Marginal Sin Bebida',
       	convert(int, (sum(tcb) - sum(costot)))  as 'Beneficio Marginal Con Bebida',
       	case @bme when 0 then 0 else convert(money, (((sum(tsb) - sum(cossbeb))/@bme)-1)*100) end as '% Beneficio Marginal Sin Bebida',	
       	case @bme when 0 then 0 else convert(money, (((sum(tcb) - sum(costot))/@bme)-1)*100) end as '% Beneficio Marginal Con Bebida',
       	case sum(cub) when 0 then 0 else convert(money, (sum(tsb) / sum(cub))) end as 'Precio del Menu Sin Bebida',
       	case sum(cub) when 0 then 0 else convert(money, (sum(tcb) / sum(cub))) end as 'Precio del Menu Con Bebida',
       	case sum(cub) when 0 then 0 else convert(money, (sum(costot) / sum(cub))) end as 'Costo Cubierto Sin Bebida',
       	case sum(cub) when 0 then 0 else convert(money, ((sum(tsb) - sum(cossbeb)) / sum(cub))) end as 'Contribución Marginal Por Cubierto Sin Bebida',
       	case sum(cub) when 0 then 0 else convert(money, ((sum(tcb) - sum(costot)) / sum(cub))) end as 'Contribución Marginal Por Cubierto Con Bebida',
       	case sum(cub) when 0 then 0 else convert(money, (sum(valdecob) / sum(cub))) end as 'Decomiso Balanza Por Cubiertos',
       	case sum(cub) when 0 then 0 else convert(money, (sum(valdecop) / sum(cub))) end as 'Decomiso Producción',
       	case sum(cub) when 0 then 0 else convert(money, (sum(valsob) / sum(cub))) end as 'Sobras Por Cubiertos'
FROM costos_maxirest 
Where (datediff(day, @DesdeFecha, Fecha) >= 0) and (datediff(day, @HastaFecha, Fecha) <= 0) and 
((Local = 1 and Turno = @chk11) or (Local = 1 and Turno = @chk12)) or
((Local = 2 and Turno = @chk21) or (Local = 2 and Turno = @chk22)) or
((Local = 3 and Turno = @chk31) or (Local = 3 and Turno = @chk32)) or
((Local = 4 and Turno = @chk41) or (Local = 4 and Turno = @chk42)) or
((Local = 5 and Turno = @chk51) or (Local = 5 and Turno = @chk52)) or
((Local = 6 and Turno = @chk61) or (Local = 6 and Turno = @chk62)) or
((Local = 7 and Turno = @chk71) or (Local = 7 and Turno = @chk72)) or
((Local = 8 and Turno = @chk81) or (Local = 8 and Turno = @chk82)) or
((Local = 9 and Turno = @chk91) or (Local = 9 and Turno = @chk92))
GO
y el campo bme esta permitiendo valor nulo

gracias
pela.-
__________________
Bye!