Foros del Web » Programando para Internet » ASP Clásico »

mostrar registros dos tablas

Estas en el tema de mostrar registros dos tablas en el foro de ASP Clásico en Foros del Web. Hola a todos: Tengo dos tablas con un solo campo alfanumerico. Quiero mostrar los registros de las dos tablas ordenados alfabeticamente. ¿Como se puede hacer?. ...
  #1 (permalink)  
Antiguo 30/05/2003, 04:33
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 21 años, 6 meses
Puntos: 1
mostrar registros dos tablas

Hola a todos:

Tengo dos tablas con un solo campo alfanumerico.

Quiero mostrar los registros de las dos tablas ordenados alfabeticamente.

¿Como se puede hacer?.

Salu2
__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
  #2 (permalink)  
Antiguo 30/05/2003, 05:18
Avatar de Fr@Nc3$c0  
Fecha de Ingreso: abril-2002
Ubicación: Barcelona (Spain)
Mensajes: 710
Antigüedad: 22 años, 2 meses
Puntos: 1
Hola!:

Para ordenar alfabeticamente:

SELECT * FROM <tabla> ORDER BY <campo a ordenar>


Saludos.
__________________
Francesc Mula Calleja
Hay mucho por ver todavía...
  #3 (permalink)  
Antiguo 30/05/2003, 06:10
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 21 años, 6 meses
Puntos: 1
Hola Fr@Nc3$c0:

Son dos tablas, y hay q mostrar los regs. de las dos.

Las dos tablas tienen un solo campo.

El select seria (salvo ideas mejores)

select campo_tabla1,campo_tabla2 from tabla1,tabla2 order by ?????????

Como es lógico, da un recordset de dos campos.

Si se te ocurre algo ... ya sabes.

Salu2 y gracias.
__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
  #4 (permalink)  
Antiguo 30/05/2003, 06:25
Avatar de Fr@Nc3$c0  
Fecha de Ingreso: abril-2002
Ubicación: Barcelona (Spain)
Mensajes: 710
Antigüedad: 22 años, 2 meses
Puntos: 1
Tienen algo en común esas 2 tablas? el mismo nombre de columna?

Prueba:

SELECT campo.tabla1, campo.tabla2 FROM tabla ORDER BY <campo a ordenar>

En campo a ordenar pondrías el campo que ordenas alfabeticamente...
Lo que no se si se podran ordenar a la vez alfabeticamente, creo que uno u otro.

Saludos.
__________________
Francesc Mula Calleja
Hay mucho por ver todavía...
  #5 (permalink)  
Antiguo 30/05/2003, 11:25
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 21 años, 6 meses
Puntos: 1
Fr@Nc3$c0:

Se ordenaria por el campo q indiques en el order by solamente, y me interesa por los dos.

No solo quiero sql, también, asp, ..., o lo que sea.

Salu2
__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
  #6 (permalink)  
Antiguo 30/05/2003, 18:18
Avatar de Fr@Nc3$c0  
Fecha de Ingreso: abril-2002
Ubicación: Barcelona (Spain)
Mensajes: 710
Antigüedad: 22 años, 2 meses
Puntos: 1
Hola:
Ordenar los 2 a la vez, mezclando los datos, no se puede hacer, tienes que ordenarlos por uno u otro...

Siento decirtelo, al menos no que yo sepa y te he estado buscando algo y es lo único que encontré.

tendrías que "mezclar" las 2 tablas para conseguir algo así.

Saludos.
__________________
Francesc Mula Calleja
Hay mucho por ver todavía...
  #7 (permalink)  
Antiguo 31/05/2003, 08:38
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 21 años, 6 meses
Puntos: 1
Gracias Fr@Nc3$c0:

La verdad es q yo me imaginaba que con sql solo no se podía hacer, por eso abri el post en el foro de ASP, intentando que alguién me facilitara alguna forma de hacerlo.

La única forma q a mi se me ha ocurrido es meter los registros en un array, y este ordenarlo, pero ...

Salu2
__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
  #8 (permalink)  
Antiguo 31/05/2003, 19:30
Avatar de Fr@Nc3$c0  
Fecha de Ingreso: abril-2002
Ubicación: Barcelona (Spain)
Mensajes: 710
Antigüedad: 22 años, 2 meses
Puntos: 1
Pues no se que decirte...

Puedes crear un array, metes los valores correspondientes al primer recordset, entonces haces un redim del vector, insertando el resto de los valores.

Pero una vez esto, ordenar el array no se si se podría, tendría que decirnoslo alguien, lo desconozco.

Saludos.
__________________
Francesc Mula Calleja
Hay mucho por ver todavía...
  #9 (permalink)  
Antiguo 01/06/2003, 01:58
 
Fecha de Ingreso: abril-2003
Mensajes: 4
Antigüedad: 21 años, 1 mes
Puntos: 0
has probado con una consulta de unión.
select campo1 from tabla1 union campo1 tabla2 order by campo1.
la salida es una sola columna ordenada alfabeticamente por campo1.
en acces al menos si funciona. no se seguro si en asp también funcionan las consultas de unión, es cuestión de probar.
saludos.
  #10 (permalink)  
Antiguo 01/06/2003, 07:58
Avatar de Fr@Nc3$c0  
Fecha de Ingreso: abril-2002
Ubicación: Barcelona (Spain)
Mensajes: 710
Antigüedad: 22 años, 2 meses
Puntos: 1
mmm...
La consulta de unión no busca el segundo select en el primero?

Tendría que mirarlo...

Saludos.
__________________
Francesc Mula Calleja
Hay mucho por ver todavía...
  #11 (permalink)  
Antiguo 01/06/2003, 13:54
 
Fecha de Ingreso: abril-2003
Mensajes: 4
Antigüedad: 21 años, 1 mes
Puntos: 0
la consulta de unión, al menos en access, ejecuta la primera parte de la sentencia select y después la siguiente parte hasta la siguiente cláusula union y así sucesivamente hasta el final.
no hace falta que las tablas estén vinculadas ni que campo 1 sea del mismo tipo en las diferentes tablas.
ten en cuenta que para filtrar debes poner las sentencias where antes de cada cláusula union, sinó no te filtrará bien, como si de consultas independientes se tratara.
por cierto la sintaxis correcta es
select campo1 from tabla1 union select campo1 from tabla2
habia olvidado el segundo select, perdón.

Lo he probado y funciona perfecto.
Los campos a listar no tienen porque ser del mismo tipo.
La sentencia where debe estar antes de la siguiente cláusula union.
La sentencia ORDER puede estar al final. si no se pone por defecto ordena ASC y también se puede utilizar DESC.
Si los campos no tienen el mismo nombre puedes usar AS
te adjunto código probado y que funciona.

SELECT camp1 AS camp FROM tabla1 UNION SELECT camp2 AS camp FROM tabla2 ORDER BY camp;

He tenido algun problema a la hora de incluirlas en alguns objetos de access porqué las consultas de unión tienen algunas limitaciones. Si tienes que utilitzarlas a menudo, leete con calma un buen manual de SQL y los manuales de access por pantalla.
Espero que esta es la solución a tu duda y que te sirva.
Saludos.
Jaume Fugarolas.
  #12 (permalink)  
Antiguo 01/06/2003, 13:59
Avatar de Fr@Nc3$c0  
Fecha de Ingreso: abril-2002
Ubicación: Barcelona (Spain)
Mensajes: 710
Antigüedad: 22 años, 2 meses
Puntos: 1
Has llamdo a los 2 SELECTs "CAMP", no ha borrado el segundo select el primero?

Esto del "union" lo desconocía bastante, graciass
__________________
Francesc Mula Calleja
Hay mucho por ver todavía...
  #13 (permalink)  
Antiguo 02/06/2003, 04:17
Avatar de Subotai  
Fecha de Ingreso: mayo-2003
Ubicación: Irúnforge
Mensajes: 198
Antigüedad: 21 años, 1 mes
Puntos: 1
Si lo que quieres es ordenar tu consulta por los dos campos que recuperas es posible, al menos en SQL Server y Oracle, seria algo asin

lo he provado con Northwind asi que si quereis ver los resultados Ctrl+C y Crtl+V

SELECTcu.City, em.LastName
FROM Customers cu, Employees em
ORDER BY cu.City asc, em.LastName desc

sin problemas
  #14 (permalink)  
Antiguo 02/06/2003, 06:52
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 21 años, 6 meses
Puntos: 1
Hola a todos:

Lo primero, GRACIAS a todos por vuestra ayuda e interés.

Lo segundo es pediros disculpas por no saber explicarme adecuadamente en su momento, pero era viernes, ...

Viamo a ve si ahora lo hago bien.

Tengo dos tablas. En cada una hay un campo id y un campo descripcion, necesitando los dos de cada una.

Efectivamente, como habeis dicho, con

select id,descripcion from tabla1 where ...
union
select ,descripcion from FamiliasEspeciales where ...
order by descripcion

conseguiría el resultado que quiero (el viernes fue mu malo), excepto por el siguiente detalle:

Tengo mis descripciones e id, pero necesito saber de que tabla salen, puesto que dependiendo de su origen, mostraré la descripcion con un color u otro.

¿Como se os ocurre hacerlo, si se puede, con el select q he indicado antes, o con lo que sea?.

Lo q pretendo es evitar tener que usar un array, q tendría q ser de 3 dimesiones (descripcion, id, origen).

Salu2 y, nuevamente, MUUUUUUCHAS GRACIAS.
__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
  #15 (permalink)  
Antiguo 03/06/2003, 07:59
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 21 años, 6 meses
Puntos: 1
¿pero es a nadie se le ocurre nada?.
__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
  #16 (permalink)  
Antiguo 27/08/2003, 03:13
 
Fecha de Ingreso: mayo-2002
Mensajes: 66
Antigüedad: 22 años, 1 mes
Puntos: 0
Hola fjmasero:

Tu problema se podría resolver devolviendo un literal extra en la consulta. Sería algo así como crear un "campo temporal", que utilizaríamos para conocer la procedencia de cada registro:

(SELECT id, descripcion, 'tablaUno' AS tablaOrigen
FROM tabla1
WHERE [...])

UNION

(SELECT id, descripcion, 'tablaDos' AS tablaOrigen
FROM tabla2
WHERE [...])

ORDER BY descripcion

Tras ejecutar la consulta tendrías un recordset con 3 campos:
id - descripcion - tablaOrigen

Con lo cual ya podrías hacer lo que comentas con un simple y llano if:
Código:
[...]
while not rs.eof
      [...]
      if rs("tablaOrigen").value = "tablaUno" then
          [... lo que sea ...]
      else
          [... lo que sea ...]
      end if
      [...]
      rs.moveNext()
wend
[...]
Esta característica, poder devolver literales en una consulta, está contemplada en el estándar SQL/92, así que debería funcionar en cualquier SGBBDD serio.

En ACCESS lo he probado y funciona sin problemas.

Bueno, espero que te sirva de ayuda.
__________________
Un saludo,

Alberto

Última edición por alcarji; 27/08/2003 a las 03:23
  #17 (permalink)  
Antiguo 27/08/2003, 11:59
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 21 años, 6 meses
Puntos: 1
GRACIAS alcarji
__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
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 02:02.