Datediff

14/09/2004 - 20:19 por Manolo Zepeda | Informe spam
Que tal amigos.

Tengo el siguiente procedimiento el cual calculo los
kms_recorridos de un taxi y los kms diarios.


Alter Procedure Consulta
@Id_Chofer int

As
Select
cho.Id_Mov,cho.Id_Chofer,cho.Fecha,cho.Concepto,cho.Ingreso
,cho.Egreso,cho.Kilometraje,

(Select cho.kilometraje-kilometraje from detalles_chofer
cho2 WHERE
cho.Id_chofer=cho2.id_chofer AND Cho.Id_Mov>cho2.Id_Mov)
kms_rec,

(Select (cho.kilometraje-kilometraje)/(datediff
(dd,fecha,cho.fecha)) from detalles_chofer cho2
WHERE cho.Id_chofer=cho2.id_chofer AND
Cho.Id_Mov>cho2.Id_Mov)kms_dia

from detalles_chofer Cho

'=El problema es que solo funciona cuando tengo 2 registros,
si tengo 3 me manda un error que es el siguiente.

(2 row(s) affected)

Server: Msg 512, Level 16, State 1, Procedure Consulta,
Line 5
Subquery returned more than 1 value. This is not permitted
when the subquery follows =, !=, <, <= , >, >= or when the
subquery is used as an expression.
Stored Procedure: Taxis.dbo.Consulta
Return Code = -6

como puedo corregir esto?

Saludos
 

Leer las respuestas

#1 Isaías
14/09/2004 - 20:33 | Informe spam
Hola Manolo

Alguno de estos 2 queryes regresa mas de 1 registro a la
vez.

(Select cho.kilometraje-kilometraje from detalles_chofer
cho2 WHERE
cho.Id_chofer=cho2.id_chofer AND Cho.Id_Mov>cho2.Id_Mov)
kms_rec,

(Select (cho.kilometraje-kilometraje)/(datediff
(dd,fecha,cho.fecha)) from detalles_chofer cho2
WHERE cho.Id_chofer=cho2.id_chofer AND
Cho.Id_Mov>cho2.Id_Mov)kms_dia

Si cuentas con SQL2000, considera convertirlos a UDF
(Funciones de Usuario)

Preguntas similares