Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-05-2005
Avatar de User_baja1
User_baja1 User_baja1 is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
User_baja1 Va por buen camino
order by no funciona con datetime...

Hola a todos,
quiero sacar un listado agrupado por dia, el campo fecha es un dateTime de sql server y a la hora de formar el grupo en QuickReport he puesto un grupo con la expresion="fecha" --> el caso es que no agrupa bien, mas correctamente es que no me crea los grupos el hacer preview.



dado que el campo datetime es un numero real, he probado a eliminar la parte decimal para solo quedarme con el dia,mes,año
asi pues en la query.sql.add(
"select * from tabla order by cast (fecha as Integer) "

el problema es que la query no saca bien ordenados los registros:

38473 2005-05-03 11:35:09.577
38473 2005-05-03 11:43:40.840
38474 2005-05-03 14:07:00.000 <---- es del dia 03/05 y me pone 38474 ?¿?
38474 2005-05-03 15:30:00.000 <---- es del dia 03/05 y me pone 38474 ?¿?
38474 2005-05-03 16:45:40.030 <---- es del dia 03/05 y me pone 38474 ?¿?
38474 2005-05-03 18:00:00.000 <---- es del dia 03/05 y me pone 38474 ?¿?
38474 2005-05-04 08:30:00.000
38474 2005-05-04 09:52:07.983
38474 2005-05-04 10:08:07.217
38474 2005-05-04 11:19:12.967

por lo que en el listado lo obtengo mal ordenados.

Ademas:

No se como decirle al QRGroup que la expresion es para agrupar por dia, ya que no me crea grupos por dia, simplemente crea uno y me saca todos los registros colgados de el.


¿Sabeis como se agrupa por dia en un informe de QR5 con un campo fecha de tipo DateTime???


Gracias,david.

Responder Con Cita
  #2  
Antiguo 17-05-2005
Avatar de User_baja1
User_baja1 User_baja1 is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
User_baja1 Va por buen camino
error por culpa del redondeo...

Ya se porque es, es por culpa del redondeo ya que si uso la funcion:


select round( cast(fecha as money) ,0,1) as dia, * from tabla
order by round( cast(hora_inicio as money) ,0,1), etc

funciona bien.
1º paso la fecha (dateTime) a numero con 4 decimales
2º trunco el valor con round(dato,0,1)


nota:
si pongo cast(fecha as numeric) no va bien ya que redondea





Cita:
Empezado por davazro
Hola a todos,
quiero sacar un listado agrupado por dia, el campo fecha es un dateTime de sql server y a la hora de formar el grupo en QuickReport he puesto un grupo con la expresion="fecha" --> el caso es que no agrupa bien, mas correctamente es que no me crea los grupos el hacer preview.



dado que el campo datetime es un numero real, he probado a eliminar la parte decimal para solo quedarme con el dia,mes,año
asi pues en la query.sql.add(
"select * from tabla order by cast (fecha as Integer) "

el problema es que la query no saca bien ordenados los registros:

38473 2005-05-03 11:35:09.577
38473 2005-05-03 11:43:40.840
38474 2005-05-03 14:07:00.000 <---- es del dia 03/05 y me pone 38474 ?¿?
38474 2005-05-03 15:30:00.000 <---- es del dia 03/05 y me pone 38474 ?¿?
38474 2005-05-03 16:45:40.030 <---- es del dia 03/05 y me pone 38474 ?¿?
38474 2005-05-03 18:00:00.000 <---- es del dia 03/05 y me pone 38474 ?¿?
38474 2005-05-04 08:30:00.000
38474 2005-05-04 09:52:07.983
38474 2005-05-04 10:08:07.217
38474 2005-05-04 11:19:12.967

por lo que en el listado lo obtengo mal ordenados.

Ademas:

No se como decirle al QRGroup que la expresion es para agrupar por dia, ya que no me crea grupos por dia, simplemente crea uno y me saca todos los registros colgados de el.


¿Sabeis como se agrupa por dia en un informe de QR5 con un campo fecha de tipo DateTime???


Gracias,david.

Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 07:40:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi