SQL Server - SQL Server 2008-R2 32-64 ayuda por favor

 
Vista:
sin imagen de perfil

SQL Server 2008-R2 32-64 ayuda por favor

Publicado por Cristhianhc (2 intervenciones) el 14/10/2014 02:59:43
Quisier alguien me ayude con el siguiente codigo de un procedimiento almacenado:...
ejecuto este codigo y luego llamo al procedimiento todo funciona ok, pero si vuelvo a ejecutar el codigo por segunda ves y luego vuelvo a llamar al procedimiento me da un error de division entre cero, cosa que no es normal para mi
puesta las consultas son sencillas y no guardo valores o o nulos en mi tabla y campo dc.kfact_detcom

IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'Rpt_LiquxEmpresaTotal' AND type = 'P')
DROP PROCEDURE Rpt_LiquxEmpresaTotal
GO
Create Procedure Rpt_LiquxEmpresaTotal
@FechaIni datetime,
@FechaFin datetime,
@Empresa integer
with encryption
As
Select c.codigo,c.Fecha_com,p.razonsoc_prov,a.detalle_art,c.Dcmto_Com,e.razonsoc_emp,DC.Cantidad_Detcom 'Kilos Bruto',
dc.kfact_detcom as 'kilos Facturados',(dc.importe) as 'Valor Facturado' ,
(dc.importe* 0.18) as IGV, (dc.importe * 1.18) as Importe,((dc.importe)/(dc.kfact_detcom))as'Precio'
From Compra as c, detCompra as dc,articulo as a, zona as z, proveedor as p,Empresa as e
Where a.codigo =dc.Cod_art and dc.cod_compra =c.codigo and c.cod_prov = p.codigo and c.cod_emp = e.codigo
and z.codigo = c.cod_Zona and c.fecha_Com between @Fechaini and @fechaFin and c.cod_emp = @Empresa
and c.anulado_com =0 and a.EsSum='N'
Go

PD: se ejecutar y elaborar procedimientos de transacciones pero con este en párticular con la división entre cero
llevo varios dias sin resolverlo., por favor algun experto ayudeme
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

SQL Server 2008-R2 32-64 ayuda por favor

Publicado por jams (93 intervenciones) el 14/10/2014 16:31:26
Prueba lo siguiente select distinct kfact_detcom from detCompra, solo para corroborar que los valores de ese campo no tengan el valor 0.

este es el error que te marca?

Divide by zero error encountered.

si tienes valores de ese campo en 0 prueba a modificar lo siguiente en la linea de la division

((dc.importe)/(case dc.kfact_detcom when 0 then 1 end)) as'Precio'

eso te arrojara para los valores en donde el factor es 0 el importe original


Saludos y suerte



Saludos y suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

SQL Server 2008-R2 32-64 ayuda por favor

Publicado por cristhianhc (2 intervenciones) el 14/10/2014 23:42:41
Hola jams, de antemano te agradesco por responder, te comento lo siguiente para resolver este dilema...

Ejecuto el procedimiento que te comenté lineas arriba y bueno sale el error de la división entre cero,
luego elimino el procedimiento lo vuelvo a crear(sin cambio alguno) y no me arroja error a la hora de la llamada al procedimiento sea el rango de fecha que sea, por eso presumo que puede ser un error de configuracion del sql ya que trabaja con un VPN y mi BD se replica en otra sede mediante esta VPN, en donde los errores se han observado
ö también pueda ser por la versión del SQL server R2 y el tipo de instruccion que le estoy dando ya que he visto que por prefijos también le ocurrió algo parecido a un amigo de otro foro.

Hoy sin cambio alguno solo elimine y volví a crear el Procedimiento y ya no se presenta el problema,
te comento que he depurado mis datos y no tengo valores cero en el campo de cantidad "dc.kfact_detcom"
porque desde el usuario restrinjo todos los valores cero o null.

Las dos veces que se ha observado el error está en la sede extarna a la que estoy y posteriormente al error
ya se muestra tambien es esta sede local.


Por favor insisto en la ayuda..... NO quisiera que otros procedimientos fallen por algún motivo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

SQL Server 2008-R2 32-64 ayuda por favor

Publicado por Isaias (4557 intervenciones) el 14/10/2014 22:53:40
¿Por qué no publicas el ERROR tal cual te lo envía el soft?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar