Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Order by, Query Raro :(, Help!

Estas en el tema de Order by, Query Raro :(, Help! en el foro de Bases de Datos General en Foros del Web. Buen dia amigos de foros del web. Tengo una duda que me esta matando jejeje, espero alguien de aki me pueda ayudar. Estoy usando MS-ACCESs ...
  #1 (permalink)  
Antiguo 20/08/2007, 09:20
Avatar de kyoalex  
Fecha de Ingreso: diciembre-2006
Ubicación: Merida Yuc Mexico
Mensajes: 36
Antigüedad: 17 años, 11 meses
Puntos: 0
Order by, Query Raro :(, Help!

Buen dia amigos de foros del web.

Tengo una duda que me esta matando jejeje, espero alguien de aki me pueda ayudar.

Estoy usando MS-ACCESs 2003 para hacer consultas SQL. mis tablas las pueden ver aki: http://www.freespaces.com/kyo_alex/query.jpg , lo que intento hacer es una consulta para que me traiga la cuenta de los User que tienen asignados files en UserOne y UserTwo.
En la parte donde dice "I NEED TO DO:"
se puede ver que me lista los nombres de los user y a la vez me cuenta cuantas veces el user 1 (por ejemplo) estubo asignado como UserOne en la mañana y cuantas veces estubo asignado en UserTwo de igual manera en la mañana.

(Vean los registros que me vevuelve, si ambos es 0,0, ese registro se destarca 'filtro').

Ahora bien el error o bien que no puedo hacer es que no me deja ordenar mis resultados por las subconsultas ('Times oneid at morning', 'Times twoId at morning'), si me deja ordenar solamente por uno, pero por los 2 nada:s. les dejo la consulta de lo que tengo bien.

select a.alias, (select count(b.CustomerOneId) from Files as b where b.CustomerOneId=a.CustumerId and b.Type='Morning') as One, (select count(c.CustomerTwoId) from Files as c where c.CustomerTwoId=a.CustomerId and c.Type='Morning') as Two, from User as a

para el diferente de CERO use esto:

where ( (select count(b.CustomerOneId) from Files as b where b.CustomerOneId=a.CustumerId and b.Type='Morning')<>0 or (select count(c.CustomerTwoId) from Files as c where c.CustomerTwoId=a.CustomerId and c.Type='Morning') <>0 )

consulta total:

select a.alias,
(select count(b.CustomerOneId) from Files as b where b.CustomerOneId=a.CustumerId and b.Type='Morning') as One,
(select count(c.CustomerTwoId) from Files as c where c.CustomerTwoId=a.CustomerId and c.Type='Morning') as Two, from User as a
where ( (select count(b.CustomerOneId) from Files as b where b.CustomerOneId=a.CustumerId and b.Type='Morning')<>0 or (select count(c.CustomerTwoId) from Files as c where c.CustomerTwoId=a.CustomerId and c.Type='Morning') <>0 )


cuando intento hacer el order by por: One, Two. el access me pide valores :S. (mi idea es hacer One desc, two asc )

Se puede ordenar por subconsultas en access ?

Espero que alguien me ayude, gracias amigos!
  #2 (permalink)  
Antiguo 22/08/2007, 05:29
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 9 meses
Puntos: 8
Re: Order by, Query Raro :(, Help!

Prueba a hacer ORDER BY 0,1 etc siendo 0 el primer campo de la SELECT, 1 el segundo etc.
Para ordenar por el primero ascendente y por el cuarto descendente:

...ORDER BY 0 ASC, 3 DESC
__________________
Kelpie
  #3 (permalink)  
Antiguo 28/08/2007, 08:23
Avatar de kyoalex  
Fecha de Ingreso: diciembre-2006
Ubicación: Merida Yuc Mexico
Mensajes: 36
Antigüedad: 17 años, 11 meses
Puntos: 0
Re: Order by, Query Raro :(, Help!

saludos . .

Gracias por tu respuesta Kelpie, y pues no funciona access me marca que no reconoces 0,1 etc..

Pero al parecer solucione mi problema, tube que hacerlo por programacion (en objetos de .net) usando un algoritmo llamado quickShort y otro llamado Burbuja :p.

Maldito access no deja trabajar bien jeejje, gracias a todos los que leyeron, nos vemos .
  #4 (permalink)  
Antiguo 28/08/2007, 10:17
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Re: Order by, Query Raro :(, Help!

Cita:
Iniciado por Kelpie Ver Mensaje
Prueba a hacer ORDER BY 0,1 etc siendo 0 el primer campo de la SELECT, 1 el segundo etc.
Para ordenar por el primero ascendente y por el cuarto descendente:

...ORDER BY 0 ASC, 3 DESC
kyoalex vuelve a leer... sustituye 0 por el primer campo que quieras ordenar, 1 por el segundo, etc

Es mucho más eficiente hacerlo en la BD, aunque esa "BD" sea access
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:49.