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

Seleccionar el mismo dato de diferentes tablas (2 tablas)

Estas en el tema de Seleccionar el mismo dato de diferentes tablas (2 tablas) en el foro de ASP Clásico en Foros del Web. Buenas tardes, les presento mi problema a ver si hay alguien que pueda ayudarme con esto, lo cual agradezco de atemano. quiero seleccionar todas las ...
  #1 (permalink)  
Antiguo 26/04/2009, 10:45
Avatar de Cameron_2006  
Fecha de Ingreso: diciembre-2006
Mensajes: 248
Antigüedad: 18 años, 4 meses
Puntos: 0
Seleccionar el mismo dato de diferentes tablas (2 tablas)

Buenas tardes, les presento mi problema a ver si hay alguien que pueda ayudarme con esto, lo cual agradezco de atemano.

quiero seleccionar todas las imagenes de un mismo proyecto, dichas imágenes entran por dos direcciones distintas:

caso 1) Al momento de crear el proyecto
caso 2) Cuando uno de los usuarios envia un mensaje desde la sala de visitas.

Para esto existen las siguientes tablas:

Para el caso 1:
----------------------------------------------

m_proyectos:
cod_proyecto
..
...
etc..

m_anexosproyecto
cod_foto
cod_proyecto
txt_filename (nombre del archivo jpg, gif, jpg)
txt_descripcion (descripción de la imagen)
nro_filsize (tamaño del archivo)

Para el caso 2:
----------------------------------------------------------
m_salas
cod_sala
cod_proyecto
....
....
etc...

T_salamensajes
cod_mensaje
cod_sala
....

m_anexosalas (cree esta tabla porque en las sala deben aparecer los anexos insertados en cada mensaje para determinado proyecto)

cod_anexosala
cod_mensaje
txt_filename (nombre del archivo jpg, gif, jpg)
txt_descripcion (descripción de la imagen)
nro_filsize (tamaño del archivo)

---------------------------------------------------------------------------------------

Lo que necesito es seleccionar todos los documentos que están en las tablas m_anexosproyecto y m_anexosalas , que pertenezcan al mismo proyecto.

Hice esto pero no resulta:
strSql ="Select * from m_anexosproyectos where cod_proyecto="&idp
union all
strSql ="Select a.cod_sala, a.cod_proyecto, b.cod_mensaje, c.txt_filename, " &_
"c.txt_descripcion, c.nro_filesize " &_
"from m_salas a, t_salasmensajes b, m_anexosalas c " &_
"where a.cod_sala = b.cod_sala " &_
"and b.cod_mensaje = c.cod_mensaje " &_
"and a.cod_proyecto = "&idp&";"
set mPdf=conexion.Execute(strSql)

<a href="http://www.dominio.es/documentos/proyectos/documentos/<%=mPdf( "txt_filename" )%>" target="_blank"><%=mPdf( "txt_descripcion" )%></a><br>Tama&ntilde;o del Archivo:&nbsp;<%=mPdf( "nro_filesize" )/1000%>&nbsp;kb

El error del log es el siguiente:
254|800a000d|No_coinciden_los_tipos:_'union'

Alguien sabe que debería utilizar para rescatar esos datos?

Gracias de antameno por la ayuda
  #2 (permalink)  
Antiguo 26/04/2009, 11:14
Avatar de Cameron_2006  
Fecha de Ingreso: diciembre-2006
Mensajes: 248
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Seleccionar el mismo dato de diferentes tablas (2 tablas)

Estos 2 query funcionan bien por separado, me dan los resultados esperado, ahora como hago para unirlos?

Extrae los documentos del proyecto "X" que fueron ingresados a través de las salas de visita:

strSql ="Select a.cod_sala, a.cod_proyecto, b.cod_mensaje, c.cod_anexosala, c.txt_filename, " &_
"c.txt_descripcion, c.nro_filesize " &_
"from m_salas a, t_salasmensajes b, m_anexosalas c " &_
"where a.cod_sala = b.cod_sala " &_
"and b.cod_mensaje = c.cod_mensaje " &_
"and a.cod_proyecto = "&idp&";"

Extrae los documentos del proyecto "X" que fueron ingresados en el momento de su creación:
strSql ="Select * from m_anexosproyectos where cod_proyecto="&idp
  #3 (permalink)  
Antiguo 26/04/2009, 13:17
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 4 meses
Puntos: 126
Respuesta: Seleccionar el mismo dato de diferentes tablas (2 tablas)

Hola

Podría ser algo como

Código asp:
Ver original
  1. strSql ="Select a.cod_sala, a.cod_proyecto, b.cod_mensaje, c.cod_anexosala, c.txt_filename, " &_
  2. "c.txt_descripcion, c.nro_filesize " &_
  3. "from m_salas a, t_salasmensajes b, m_anexosalas c " &_
  4. "where a.cod_sala = b.cod_sala " &_
  5. "and b.cod_mensaje = c.cod_mensaje " &_
  6. "and a.cod_proyecto = (Select * from m_anexosproyectos where cod_proyecto="&idp&");

De cualquier modo mira como hacer subconsultas

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #4 (permalink)  
Antiguo 27/04/2009, 04:13
Avatar de Cameron_2006  
Fecha de Ingreso: diciembre-2006
Mensajes: 248
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Seleccionar el mismo dato de diferentes tablas (2 tablas)

Gracias Adler por tu constante ayuda, he colocado ese código de mil y una maneras y me sigue diciendo que:

87|800a0401|Se_esperaba_un_final_de_instrucción
la línea 87 es la que está en rojo, gracias nuevamente

Set mPdf=Server.CreateObject("ADODB.RecordSet")
strSql ="Select a.cod_sala, a.cod_proyecto, b.cod_mensaje, c.cod_anexosala, c.txt_filename, " &_
strSql = strSql = "c.txt_descripcion, c.nro_filesize " &_
strSql = strSql = "from m_salas a, t_salasmensajes b, m_anexosalas c " &_
strSql = strSql = "where a.cod_sala = b.cod_sala " &_
strSql = strSql = "and b.cod_mensaje = c.cod_mensaje " &_
strSql = strSql = "and a.cod_proyecto = (Select * from m_anexosproyectos where cod_proyecto="&idp&")";
set mPdf = conexion.execute(strSql)
  #5 (permalink)  
Antiguo 27/04/2009, 04:46
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 4 meses
Puntos: 126
Respuesta: Seleccionar el mismo dato de diferentes tablas (2 tablas)

Hola

Prueba así

Código sql:
Ver original
  1. SET mPdf=Server.CreateObject("ADODB.RecordSet")
  2. strSql ="Select a.cod_sala, a.cod_proyecto, b.cod_mensaje, c.cod_anexosala, c.txt_filename, "
  3. strSql = strSql & "c.txt_descripcion, c.nro_filesize "
  4. strSql = strSql & "from m_salas a, t_salasmensajes b, m_anexosalas c "
  5. strSql = strSql & "where a.cod_sala = b.cod_sala "
  6. strSql = strSql & "and b.cod_mensaje = c.cod_mensaje "
  7. strSql = strSql & "and a.cod_proyecto = (Select * from m_anexosproyectos where cod_proyecto="&idp&")"

Se trata de concatenación "&", si usas el operado "=" es para dar valor a una variable, session, ect..

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #6 (permalink)  
Antiguo 27/04/2009, 05:26
Avatar de Cameron_2006  
Fecha de Ingreso: diciembre-2006
Mensajes: 248
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Seleccionar el mismo dato de diferentes tablas (2 tablas)

ok, gracias de nuevo, pero nada, sigue dando el mismo error:
|86|800a0401|Se_esperaba_un_final_de_instrucción

Lo coloqué de estas 2 formas:
strSql = strSql & "and a.cod_proyecto = (Select * from m_anexosproyectos where cod_proyecto="&idp&")"

y así:
strSql = strSql & "and a.cod_proyecto = (Select * from m_anexosproyectos where cod_proyecto="&idp&");"

y nada
  #7 (permalink)  
Antiguo 27/04/2009, 11:34
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 4 meses
Puntos: 126
Respuesta: Seleccionar el mismo dato de diferentes tablas (2 tablas)

Hola

Vamos ha hacer un bug

Sistituye

set mPdf = conexion.execute(strSql)

por

Response.Write strSql

y muestra el resultado

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #8 (permalink)  
Antiguo 27/04/2009, 18:42
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 2 meses
Puntos: 88
Respuesta: Seleccionar el mismo dato de diferentes tablas (2 tablas)

ando oxidado con esto de las sentencias...
pero el primer orror que veo es este
Cita:
strSql ="Select * from m_anexosproyectos where cod_proyecto="&idp
union all
strSql ="
Select a.cod_sala, a.cod_proyecto, b.cod_mensaje, c.txt_filename, " &_
"c.txt_descripcion, c.nro_filesize " &_
"from m_salas a, t_salasmensajes b, m_anexosalas c " &_
"where a.cod_sala = b.cod_sala " &_
"and b.cod_mensaje = c.cod_mensaje " &_
"and a.cod_proyecto = "&idp&";"
set mPdf=conexion.Execute(strSql)
no se si lo notarian desde un principio

ahora, funcionara algo como esto????
Código ASP:
Ver original
  1. strquery = "select * from (" &_
  2.             "Select * from m_anexosproyectos"&_
  3.             " union "&_
  4.             "Select a.cod_sala, a.cod_proyecto, b.cod_mensaje, c.txt_filename,"&_
  5.             " c.txt_descripcion, c.nro_filesize from m_salas a, t_salasmensajes b, m_anexosalas c"&_
  6.             ") where a.cod_sala = b.cod_sala and b.cod_mensaje = c.cod_mensaje "&_
  7.             "and a.cod_proyecto = (cod_proyecto= " & idp & ");"
  8. set mPdf=conexion.Execute(strSql)
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
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 11:04.