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

Recordset qeu NO me devuelva los campos de otro

Estas en el tema de Recordset qeu NO me devuelva los campos de otro en el foro de ASP Clásico en Foros del Web. Hola: Tengo dos recordsets el primero me devuelve dos registros: rsContratados.open "SELECT * FROM Contratacion_Anuncios WHERE ID_Empresa="& session("id_empresa") &" ORDER BY fecha_publicacion DESC",cn El segundo ...
  #1 (permalink)  
Antiguo 12/03/2007, 08:19
yz!
Invitado
 
Mensajes: n/a
Puntos:
Recordset qeu NO me devuelva los campos de otro

Hola:

Tengo dos recordsets el primero me devuelve dos registros:

rsContratados.open "SELECT * FROM Contratacion_Anuncios WHERE ID_Empresa="& session("id_empresa") &" ORDER BY fecha_publicacion DESC",cn


El segundo me tiene que devolver lo que le corresponde excepto esos dos registros:

rs.open "SELECT Empresas.Nombre, Empresas.ID_EMPRESA, Ofertas.* FROM Empresas INNER JOIN Ofertas ON Empresas.ID_EMPRESA = Ofertas.ID_Empresa WHERE id_tipo=7 AND Ofertas.ID_Empresa="& session("id_empresa") &" AND ID_OFERTA NOT IN ("& rsContratados("ID_OFERTA") &") ORDER BY fecha_creacion DESC",cn

Pero en vez de devolverme todos excepto los que aparezcan en rsContratados, me los devuelve todos excepto el ultimo registro de rsContratados.

¿Hay alguna manera de decirle que ignore todos los del rsContratados?
  #2 (permalink)  
Antiguo 12/03/2007, 10:01
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Re: Recordset qeu NO me devuelva los campos de otro

Probá así:

Código:
rs.open "SELECT Empresas.Nombre, Empresas.ID_EMPRESA, Ofertas.* FROM Empresas INNER JOIN Ofertas ON Empresas.ID_EMPRESA = Ofertas.ID_Empresa WHERE id_tipo=7 AND Ofertas.ID_Empresa="& session("id_empresa") &" AND ID_OFERTA NOT IN (SELECT ID_OFERTA FROM Contratacion_Anuncios WHERE ID_Empresa="& session("id_empresa") &" ORDER BY fecha_publicacion DESC) ORDER BY fecha_creacion DESC",cn
__________________
...___...
  #3 (permalink)  
Antiguo 12/03/2007, 14:52
yz!
Invitado
 
Mensajes: n/a
Puntos:
Re: Recordset qeu NO me devuelva los campos de otro

OK. No se como no se me ocurrió. Probé y me dijo:


Microsoft OLE DB Provider for SQL Server error '80040e14'
La cláusula ORDER BY no es válida en vistas, funciones en línea, tablas derivadas ni subconsultas, salvo que se especifique también TOP.


Así que elimine el order by de la subconsulta ya que realmente no lo necesitaba y todo funcionó cómo debía.


Quedó así:
Código:
    rs.open "SELECT Empresas.Nombre, Empresas.ID_EMPRESA, Ofertas.* FROM Empresas "&_
        "INNER JOIN Ofertas ON Empresas.ID_EMPRESA = Ofertas.ID_Empresa "&_
        "WHERE id_tipo=7 AND Ofertas.ID_Empresa="& session("id_empresa") &" AND ID_OFERTA NOT IN ("&_
        "SELECT ID_OFERTA FROM Contratacion_Anuncios WHERE ID_Empresa="& session("id_empresa") &_
        ") ORDER BY fecha_creacion DESC",cn
Muchas gracias por tu ayuda.


  #4 (permalink)  
Antiguo 12/03/2007, 15:14
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Re: Recordset qeu NO me devuelva los campos de otro

Mirá vos, no sabía que el order by no estaba permitido en subconsultas (salvo que se especifique también TOP). Igual, como bien decís, es totalmente innecesario el order by allí.

De nada ;)
__________________
...___...
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 18:23.