Ayuda URGENTE POR FAVOR
Publicado por sergio (1 intervención) el 28/12/2011 20:37:50
Hola Mi consulta es la siguiente.
Realice un FUNCTION para capturar los tiempos de produccion por dia y maquina.
create FUNCTION Hora_preparacion_Mr(
@maquina int,
@fecha datetime) RETURNS datetime AS
BEGIN
DECLARE @diferencia_hora datetime
SELECT @diferencia_hora = CONVERT(VARCHAR,DATEDIFF(n,CONVERT(DATETIME,'1900-01-01 00:00:00.0'),convert(datetime,SUM(CONVERT(numeric(25,15),FIN_PROCESO - inicio_proceso)))) / 60) + ':'+ right('00' + CONVERT(VARCHAR,DATEDIFF(n,CONVERT(DATETIME,'1900-01-01 00:00:00.0'),convert(datetime,SUM(CONVERT(numeric(25,15),FIN_PROCESO - inicio_proceso)))) % 60),2)
FROM partes, det_partes
where id_parte=referencia_parte
and operacion in(101)
and fecha_parte =@fecha
and p_produccion=@maquina
group by fecha_parte
RETURN(@diferencia_hora)
END
pero al momento de llamar la FUNCTION de un select me da un error
No se permite la conversión implícita del tipo de datos datetime a int. Utilice la función CONVERT para ejecutar esta consulta
adjunto la consulta donde la llamo
SELECT fecha_parte ,p_produccion,
sum(buenos) as Eq_Buenos,
dbo.Entradas_MR(fecha_parte,p_produccion,1) as Entrada_MR,
dbo.Entradas_CP( fecha_parte,p_produccion,1) as Entrada_CP,
dbo.Hora_preparacion_Mr(fecha_parte,p_produccion) as Hrs_preparacion_Mr
from partes,det_partes
where id_parte=referencia_parte
and p_produccion=7
and fecha_parte between '20111101' and '20111130'
group by convert(datetime,fecha_parte),fecha_parte,p_produccion
Ojala me puedan ayudar
yo ejecuto la consulta sin function y resulta sin problemas
SELECT CONVERT(VARCHAR,DATEDIFF(n,CONVERT(DATETIME,'1900-01-01 00:00:00.0'),convert(datetime,SUM(CONVERT(numeric(25,15),FIN_PROCESO - inicio_proceso)))) / 60) + ':'+ right('00' + CONVERT(VARCHAR,DATEDIFF(n,CONVERT(DATETIME,'1900-01-01 00:00:00.0'),convert(datetime,SUM(CONVERT(numeric(25,15),FIN_PROCESO - inicio_proceso)))) % 60),2)
FROM partes, det_partes
where id_parte=referencia_parte
and operacion in(101)
and fecha_parte between '20111101' and '20111130'
and p_produccion=7
group by fecha_part
Espero ayuda gracias
Realice un FUNCTION para capturar los tiempos de produccion por dia y maquina.
create FUNCTION Hora_preparacion_Mr(
@maquina int,
@fecha datetime) RETURNS datetime AS
BEGIN
DECLARE @diferencia_hora datetime
SELECT @diferencia_hora = CONVERT(VARCHAR,DATEDIFF(n,CONVERT(DATETIME,'1900-01-01 00:00:00.0'),convert(datetime,SUM(CONVERT(numeric(25,15),FIN_PROCESO - inicio_proceso)))) / 60) + ':'+ right('00' + CONVERT(VARCHAR,DATEDIFF(n,CONVERT(DATETIME,'1900-01-01 00:00:00.0'),convert(datetime,SUM(CONVERT(numeric(25,15),FIN_PROCESO - inicio_proceso)))) % 60),2)
FROM partes, det_partes
where id_parte=referencia_parte
and operacion in(101)
and fecha_parte =@fecha
and p_produccion=@maquina
group by fecha_parte
RETURN(@diferencia_hora)
END
pero al momento de llamar la FUNCTION de un select me da un error
No se permite la conversión implícita del tipo de datos datetime a int. Utilice la función CONVERT para ejecutar esta consulta
adjunto la consulta donde la llamo
SELECT fecha_parte ,p_produccion,
sum(buenos) as Eq_Buenos,
dbo.Entradas_MR(fecha_parte,p_produccion,1) as Entrada_MR,
dbo.Entradas_CP( fecha_parte,p_produccion,1) as Entrada_CP,
dbo.Hora_preparacion_Mr(fecha_parte,p_produccion) as Hrs_preparacion_Mr
from partes,det_partes
where id_parte=referencia_parte
and p_produccion=7
and fecha_parte between '20111101' and '20111130'
group by convert(datetime,fecha_parte),fecha_parte,p_produccion
Ojala me puedan ayudar
yo ejecuto la consulta sin function y resulta sin problemas
SELECT CONVERT(VARCHAR,DATEDIFF(n,CONVERT(DATETIME,'1900-01-01 00:00:00.0'),convert(datetime,SUM(CONVERT(numeric(25,15),FIN_PROCESO - inicio_proceso)))) / 60) + ':'+ right('00' + CONVERT(VARCHAR,DATEDIFF(n,CONVERT(DATETIME,'1900-01-01 00:00:00.0'),convert(datetime,SUM(CONVERT(numeric(25,15),FIN_PROCESO - inicio_proceso)))) % 60),2)
FROM partes, det_partes
where id_parte=referencia_parte
and operacion in(101)
and fecha_parte between '20111101' and '20111130'
and p_produccion=7
group by fecha_part
Espero ayuda gracias
Valora esta pregunta


0