Order by por Fecha

09/08/2005 - 16:12 por Matías | Informe spam
HOLA a todos, tengo el siguiente sp el cual me necesito ordenar por fecha y
otros dos campos, el tema es que no me sale ordenado por fecha como debiera
ser:

CREATE PROCEDURE pa_select_inasist_personal_por_fecha(@IdPersonal AS Int,
@IdCargo as Smallint, @DesdeFecha as Char(10), @HastaFecha as Char(10)) AS
set nocount on
SELECT P.Apellidos +', '+ P.Nombres as ApellidoNombre,
CONVERT(char(10),IP.Fecha,103) as Fecha, D.Descripcion as Dia,
TI.Descripcion as TipoInas, IP.Justificada, IP.Motivo, IP.Condicion,
P.Legajo, P.Domicilio, P.Telefono1, P.Telefono2, C.Descripcion as Cargo,
IP.IdPersonal, IP.IdCargo, IP.Horario, IP.IdDia, IP.IdTipoInas,
TotInas =(SELECT COUNT(IP.IdTipoInas)
FROM InasPersonal IP
WHERE IP.IdPersonal = @IdPersonal AND IP.IdCargo = @IdCargo AND
IP.IdTipoInas = 1AND (IP.Fecha BETWEEN @DesdeFecha AND
DATEADD(dd,1,@HastaFecha))),
TotLlegTarde =(SELECT COUNT(IP.IdTipoInas)
FROM InasPersonal IP
WHERE IP.IdPersonal = @IdPersonal AND IP.IdCargo = @IdCargo AND
IP.IdTipoInas = 2 AND (IP.Fecha BETWEEN @DesdeFecha AND
DATEADD(dd,1,@HastaFecha)))
FROM InasPersonal IP
INNER JOIN Personal P ON IP.IdPersonal = P.IdPersonal
INNER JOIN Cargo C ON IP.IdCargo = C.IdCargo
INNER JOIN Dias D ON IP.IdDia = D.IdDia
INNER JOIN TipoInasPersonal TI ON IP.IdTipoInas = TI.IdTipoInas
WHERE IP.IdPersonal = @IdPersonal AND IP.IdCargo = @IdCargo AND (IP.Fecha
BETWEEN @DesdeFecha AND DATEADD(dd,1,@HastaFecha))
ORDER BY CONVERT(char(10),IP.Fecha,103), IP.IdDia, IP.Horario

Me sale ordenado de la siguiente forma:
01/07/2005
01/07/2005
04/08/2005
06/07/2005
15/03/2005
17/02/2005
17/02/2005
24/03/2005

tambien he probado: ORDER BY IP.Fecha, IP.IdDia, IP.Horario

El campo fecha de la tabla es de tipo datetime.

Comento que este mismo problema lo tengo en otros sp que tienen fecha y
tengo que ordenarlos por ésta.

Uso SQL 2000

GRACIAS...

Preguntas similare

Leer las respuestas

#1 Maxi
09/08/2005 - 16:25 | Informe spam
Hola, el tema es q estas ordenando valores alfabeticvos y no de fecha!!
porque haces el convert?


Salu2
Maxi


"Matías" escribió en el mensaje
news:%
Mostrar la cita
#2 Matías
09/08/2005 - 17:21 | Informe spam
Hola gracias por respoder, te comento que el Convert lo hago para que en la
consulta no me salga la fecha + hora, solo me interesa la Fecha.
Como comente el campo fecha es DateTime.
Alguna idea?

Muchas gracias por tu tiempo.

"Maxi" escribió en el mensaje
news:
Mostrar la cita
fecha
Mostrar la cita
Int,
Mostrar la cita
AS
Mostrar la cita
(IP.Fecha
Mostrar la cita
#3 Alejandro Mesa
09/08/2005 - 17:46 | Informe spam
Matías,

Con el permiso de ambos.

Se puede ordernar por un campo o expresion que no este en la lista de
columnas de la sentencia select. Maxi se refirio a que debes ordenar por el
campo datetime y no por la conversion.

Mostrar la cita
ORDER BY IP.Fecha, IP.IdDia, IP.Horario


AMB

"Matías" wrote:

Mostrar la cita
#4 Maxi
09/08/2005 - 18:34 | Informe spam
Me ganaste de mano ;-)


Salu2
Maxi


"Alejandro Mesa" escribió en el
mensaje news:
Mostrar la cita
#5 Matías
09/08/2005 - 18:58 | Informe spam
Gracias muchachos, ya probe ordenar de esa forma:
Mostrar la cita
sin resultados

voy a ver que pasa si en el select saco el: CONVERT(char(10),IP.Fecha,103)
as Fecha

ahora estoy en el trabajo y la bd la tengo en mi casa, esta noche hago
pruebas y cualquier cosa mañana molesto de nuevo.

Gracias.

"Matías" escribió en el mensaje
news:
Mostrar la cita
la
Mostrar la cita
Char(10))
Mostrar la cita
Cargo,
Mostrar la cita
y
Mostrar la cita
Ads by Google
Search Busqueda sugerida