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 10-06-2005
Ing Harry Ing Harry is offline
Miembro
 
Registrado: jun 2005
Posts: 12
Poder: 0
Ing Harry Va por buen camino
Exclamation Problema Con Un Query

SALUDOS..

Me encuentro realizando el siguiente qry en Mysql

select c.cod_prov,d.descripcion,format((sum(case a.cod_movi when '1' then a.valor else 0 end)),2)"Venta Neta",
format((sum(case a.cod_movi when '2' then a.valor else 0 end)),2)"Devoluciones",
format((sum(case a.cod_movi when '1' then a.valor when'2' then a.valor*-1 else 0 end)),2)as total
from tbl_venta as a,tbl_artic as b,tbl_prov as c,tbl_nit as d
where a.cod_artic=b.cod_artic and b.cod_prov=c.cod_prov and c.nit=d.nit
and a.fecha between '2005-05-01' and '2005-05-31'
group by c.cod_prov,d.descripcion
order by total;

El resultado del mismo es el esperado, pero la funcion order by no me esta ordenando los datos. No se que esta pasando, si alguien sabe como puedo hacer para que el ordenamiento funcione se lo agradeceria enormemente.

Gracias por la atencion
Responder Con Cita
  #2  
Antiguo 10-06-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
No sé si es una barbaridad, pero creo haber leido por los foros que tienes que usar:
Código SQL [-]
order by (sum(case a.cod_movi when '1' then a.valor when'2' then a.valor*-1 else 0 end)

Suerte
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 10-06-2005
Ing Harry Ing Harry is offline
Miembro
 
Registrado: jun 2005
Posts: 12
Poder: 0
Ing Harry Va por buen camino
Saludos

Gracias por tus comentarios, pero tu sugerencia no funciona, agradezco tu colaboracion y quedo a la espera de mas comentarios.
Responder Con Cita
  #4  
Antiguo 10-06-2005
lgarcia lgarcia is offline
Miembro
 
Registrado: jul 2004
Posts: 479
Poder: 20
lgarcia Va por buen camino
P

Hola:

Me parece que en la sentencia que utilizas para el Order by debes incluir el format, o sea

format((sum(case a.cod_movi when '1' then a.valor when'2' then a.valor*-1 else 0 end)),2)

Espero te sirva

Saludos
Luis Garcia
Responder Con Cita
  #5  
Antiguo 10-06-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Yo en Interbase he usado:
Código SQL [-]
select Campo1, Cast(Campo2, Integer) from Tabla
order by 2
Ahí le estoy indicando la columna que quiero que use para ordenar de acuerdo a su número. Lo que no se si esto solo sirva en Interbase.

Pruebalo a ver si te sirve.


Saludos...
Responder Con Cita
  #6  
Antiguo 11-06-2005
Ing Harry Ing Harry is offline
Miembro
 
Registrado: jun 2005
Posts: 12
Poder: 0
Ing Harry Va por buen camino
Nada, no funciona, las cosas siguen iguales, habra que seguir investigando, pero creo que esto esta demasiado misterioso no creen. Me doy cuenta que muchos han visto este hilo asi que les agradezco me colaboren para adquirir este conocimiento al parecer el problema esta dado por el uso del case.

Gracias estamos en contacto
Responder Con Cita
  #7  
Antiguo 11-06-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
En este momento no logro recordar si mysql soporta lo que voy a sugerirte.. pero quien quita y funcione.

Código SQL [-]
  Select q1.cod_prov, q1.Total
    from (select c.cod_prov,
                 sum(case a.cod_movi when '1' then a.valor when'2' then a.valor*-1 else 0 end) total
            from tbl_venta a, /* etcetera */
         ) q1
   order by q1.Total;

En la jerga de oracle, esto se llama inline views... no se cómo se llama en otras jergas..

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #8  
Antiguo 11-06-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

No se mucho de sentencias SQl pero
Código SQL [-]
...when'2'
when y '2'
estan pegados. FUnciona asi?
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #9  
Antiguo 11-06-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Bueno, eso depende del tokenizer del motor de la base de datos, pero yo diría que debe funcionar. En todo caso, yo lo copié del mensaje original de Harry..
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #10  
Antiguo 14-06-2005
Ing Harry Ing Harry is offline
Miembro
 
Registrado: jun 2005
Posts: 12
Poder: 0
Ing Harry Va por buen camino
Thumbs up

Saludos..


Bueno les cuento que ya pude corregir el problema. A decir verdad el causante del inconveniente fue la funcion format, pues deje de usarla y el ordenamiento quedo ok. Como este query lo estaba usando para poder generar un reporte, lo que hice fue dejarle el formateo del mismo al quickreport.

De todas maneras queda la duda al momento de usar el format, pues no nos permite ordenar. Agradezco la atencion prestada y los comentarios recibidos, todos fueron muy utiles.


Atentamente
ING HARRY
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 23:51:32.


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