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

Problema con consulta Sql

Estas en el tema de Problema con consulta Sql en el foro de ASP Clásico en Foros del Web. Quiero mostrar los pedidos realizados por un cliente: Las tablas (la primera fila de abajo, las siguientes filas son los campos) que tengo en la ...
  #1 (permalink)  
Antiguo 04/06/2004, 04:01
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Problema con consulta Sql

Quiero mostrar los pedidos realizados por un cliente:
Las tablas (la primera fila de abajo, las siguientes filas son los campos) que tengo en la base de access son:
Clientes Pedidos Procesos Productospedidos Articulos
Idcliente Idpedido Idproceso Idpedido Idarticulo
Usuario Idcliente Proceso Idarticulo Idcliente
Fecha Cantidad
La consulta Sql que realizo es:
sql="select * FROM articulos INNER JOIN (productospedidos INNER JOIN pedidos ON pedidos.idpedido=productospedidos.idpedido) ON tribuna.idarticulo=productospedidos.idarticulo where #" & formatdatetime(date,2) & "#-fecha<=" & numerodias & " and idcliente=" & valid_sql(session("idcliente")) & " order by pedidos.idpedido"

Esta es la impresión de la consulta que realizo:
select * FROM tribuna INNER JOIN (productospedidos INNER JOIN pedidos ON pedidos.idpedido=productospedidos.idpedido) ON tribuna.idtribuna=productospedidos.idtribuna where #04/06/2004#-fecha<=90 and idcliente=21 order by pedidos.idpedido
Este es el error que obtengo:
Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Controlador ODBC Microsoft Access] Puede que el campo 'idcliente' especificado haga referencia a más de una tabla de las mostradas en la cláusula FROM de la instrucción SQL.
Por que me muestra este error, puede ser por que la tabla productos incluye el campo idcliente, porque si elimino ese campo de la tabla muestra el resultado correctamente, pero necesito que idcliente este en la tabla productos porque cada producto pertenece a un cliente y no a los demas,
Como podria modificar la consulta para que incluyese tambien la tabla productos.
Gracias por adelantado

Última edición por sqa212; 04/06/2004 a las 04:04
  #2 (permalink)  
Antiguo 04/06/2004, 04:03
 
Fecha de Ingreso: octubre-2003
Ubicación: ***
Mensajes: 152
Antigüedad: 20 años, 7 meses
Puntos: 0
el nombre del campo idcliente esta dentro de las dos tablas relacionadas tienes q especificar a q tabla pertenece a la hora de hacer una comparacion

nombre_tabla.campo=id

Última edición por _Brian_; 04/06/2004 a las 04:04
  #3 (permalink)  
Antiguo 04/06/2004, 04:06
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Gracias Brian por tu respuesta tan rapida, me podrias explicar como quedaria la sentecia
  #4 (permalink)  
Antiguo 04/06/2004, 04:12
 
Fecha de Ingreso: octubre-2003
Ubicación: ***
Mensajes: 152
Antigüedad: 20 años, 7 meses
Puntos: 0
a ver por lo q veo creo q tienes el campo idcliente en la tabla productospedidos y pedidos, creo yo q solo deberia estar en la tabla pedidos el cual se relaciona con los clientes...porq esta tambien en productospedidos ¿?

pero bueno esta es la sentencia

sql="select * FROM articulos INNER JOIN (productospedidos INNER JOIN pedidos ON pedidos.idpedido=productospedidos.idpedido) ON tribuna.idarticulo=productospedidos.idarticulo where #" & formatdatetime(date,2) & "#-fecha<=" & numerodias & " and pedidos.idcliente=" & valid_sql(session("idcliente")) & " order by pedidos.idpedido"
  #5 (permalink)  
Antiguo 04/06/2004, 17:39
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Gracias funciono
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 00:42.