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

consulta de varias tablas con un select

Estas en el tema de consulta de varias tablas con un select en el foro de ASP Clásico en Foros del Web. Hola tengo un problema y quiero hacer consultas de varias tablas a la vez para poder sacar datos, que es lo q esta mal de ...
  #1 (permalink)  
Antiguo 20/01/2006, 05:22
 
Fecha de Ingreso: septiembre-2004
Mensajes: 76
Antigüedad: 19 años, 9 meses
Puntos: 0
consulta de varias tablas con un select

Hola tengo un problema y quiero hacer consultas de varias tablas a la vez para poder sacar datos, que es lo q esta mal de la consulta?
Tabla Abrigos y Tabla bolsos, estan cogiendo los datos de itemsorders q es donde se guandan las cantidades

sqlText = "select stockabrigos.productID, stockabrigos.catalogName, stockabrigos.referncia,stockabrigos.txttalla01,sto ckabrigos.txttalla02,stockabrigos.txttalla02a,stoc kabrigos.txttalla03,stockabrigos.txttalla03a,stock abrigos.txttalla03b,stockabrigos.txttalla04a,stock abrigos.txttalla04b,stockabrigos.color01,stockabri gos.color02,stockabrigos.color03,stockabrigos.colo r04, stockbolsos.productID, stockbolsos.catalogName, stockbolsos.referncia, stockbolsos.txttalla05, stockbolsos.txttalla06, stockbolsos.txttalla07, stockbolsos.color05,stockbolsos.color06, stockbolsos.color07," _
& "stockabrigos.precio, stockbolsos.precio, quantity, quantity2, quantity3, quantity4, quantity5, quantity6, quantity7, quantity8, quantity9, quantity10 from stockabrigos, stockbolsos, " _
& "itemsOrdered where " _
& "stockabrigos.productID= itemsOrdered.ProductID = stockbolsos.productID = itemsOrdered.ProductID " _
& "and itemsOrdered.orderID = " & intOrderID
  #2 (permalink)  
Antiguo 20/01/2006, 05:37
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Cita:
Iniciado por Essftg

sqlText = "select stockabrigos.productID, stockabrigos.catalogName, stockabrigos.referncia,stockabrigos.txttalla01,sto ckabrigos.txttalla02,stockabrigos.txttalla02a,stoc kabrigos.txttalla03,stockabrigos.txttalla03a,stock abrigos.txttalla03b,stockabrigos.txttalla04a,stock abrigos.txttalla04b,stockabrigos.color01,stockabri gos.color02,stockabrigos.color03,stockabrigos.colo r04, stockbolsos.productID, stockbolsos.catalogName, stockbolsos.referncia, stockbolsos.txttalla05, stockbolsos.txttalla06, stockbolsos.txttalla07, stockbolsos.color05,stockbolsos.color06, stockbolsos.color07," _
& "stockabrigos.precio, stockbolsos.precio, quantity, quantity2, quantity3, quantity4, quantity5, quantity6, quantity7, quantity8, quantity9, quantity10 from stockabrigos, stockbolsos, " _
& "itemsOrdered where " _
& "stockabrigos.productID= itemsOrdered.ProductID AND stockbolsos.productID = itemsOrdered.ProductID " _
& "and itemsOrdered.orderID = " & intOrderID

Un saludo
  #3 (permalink)  
Antiguo 20/01/2006, 06:21
 
Fecha de Ingreso: septiembre-2004
Mensajes: 76
Antigüedad: 19 años, 9 meses
Puntos: 0
Esto no sale, como tengo q hacer la relacion de bd de datos
  #4 (permalink)  
Antiguo 20/01/2006, 06:43
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Veamoslo paso a paso, a ver si me aclaro

Cita:
Iniciado por Essftg
sqlText = "select stockabrigos.productID, stockabrigos.catalogName, stockabrigos.referencia,stockabrigos.txttalla01,st ockabrigos.txttalla02,stockabrigos.txttalla02a,sto ckabrigos.txttalla03,stockabrigos.txttalla03a,stoc kabrigos.txttalla03b,stockabrigos.txttalla04a,stoc kabrigos.txttalla04b,stockabrigos.color01,stockabr igos.color02,stockabrigos.color03,stockabrigos.col or04
Hasta aqui los campos para stockabrigos. Yo lo veo bien

Cita:
Iniciado por Essftg
stockbolsos.productID, stockbolsos.catalogName, stockbolsos.referencia, stockbolsos.txttalla05, stockbolsos.txttalla06, stockbolsos.txttalla07, stockbolsos.color05,stockbolsos.color06, stockbolsos.color07," _
Aqui tenemos un problema: los campos de stockbolsos son identicos a los de la tabla stockabrigos con lo cual deberas de poner otro nombre. Algo asi como

stockbolsos.productID As IDbolso, stockbolsos.catalogName As bolsoscatalogName, etc

Si no lo haces asi, saltará un error de la base de datos


Cita:
Iniciado por Essftg
& "stockabrigos.precio, stockbolsos.precio, quantity, quantity2, quantity3, quantity4, quantity5, quantity6, quantity7, quantity8, quantity9, quantity10 from stockabrigos, stockbolsos, " _
& "itemsOrdered where " _
& "stockabrigos.productID= itemsOrdered.ProductID = stockbolsos.productID = itemsOrdered.ProductID " _
& "and itemsOrdered.orderID = " & intOrderID
Lo mismo con los campos precio de ambas tablas

Supongo que los campos quantityX pertenecen a la tabla itemsOrdered

Vamos con el WHERE

Cita:
Iniciado por Essftg

& "WHERE stockabrigos.productID= itemsOrdered.ProductID AND stockbolsos.productID = itemsOrdered.ProductID " _
& "and itemsOrdered.orderID = " & intOrderID
Con el AND yo lo veo resuelto.

Pruebalo y cuentanos

Un saludo
  #5 (permalink)  
Antiguo 20/01/2006, 06:56
 
Fecha de Ingreso: septiembre-2004
Mensajes: 76
Antigüedad: 19 años, 9 meses
Puntos: 0
Tipo de error:
Error de compilación de Microsoft VBScript (0x800A0400)
Se esperaba una instrucción
/Tienda/espanol/reviewOrder.asp, línea 149
& "stockabrigos.productID= itemsOrdered.ProductID AND stockbolsos.productID0 = itemsOrdered.ProductID " _


me este error, en la tabla bolos le he cambiado todo y le he puesto porductid0, etc.
  #6 (permalink)  
Antiguo 20/01/2006, 07:06
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Parece un error de sintaxis. Prueba a unir toda la cadena (quitale los & y los _ ) en una sola a ver como funciona. Siempre hay tiempo despues para deshacerla.

Un saludo
  #7 (permalink)  
Antiguo 20/01/2006, 07:28
 
Fecha de Ingreso: septiembre-2004
Mensajes: 76
Antigüedad: 19 años, 9 meses
Puntos: 0
No FUNCIONA.
A ver si me explico el funcionamiento, coges los campos de los abrigos y los bolsos y se van a auna tabla solo con las cantidades y mediante el select quiero sacar las cantidades y lños campos relacionados, pero el problema se identifican con itemsOrdered.ProductID q aqui es donde se insertan las ordenes de pedido. Ya no se q hacer ni como hacerlo estoy q ya no puedo pensar, ayudaaaaaa
  #8 (permalink)  
Antiguo 20/01/2006, 08:42
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
q base de dtos estas usandO
__________________
JuanRa Pérez
San Salvador, El Salvador
  #9 (permalink)  
Antiguo 20/01/2006, 08:43
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
le di enviar por error

pregunto lo de la base porque podes ahcer la vista de todos los datos que queres usar

luego ese codigo SQL que te da la vista (access y MSSQL) lo usas en el web y colo cambias los request que tenes que usar

solo es unaa idea
__________________
JuanRa Pérez
San Salvador, El Salvador
  #10 (permalink)  
Antiguo 20/01/2006, 10:45
 
Fecha de Ingreso: septiembre-2004
Mensajes: 76
Antigüedad: 19 años, 9 meses
Puntos: 0
juanraperez, explicate un poco mas pq no te entiendo.
  #11 (permalink)  
Antiguo 20/01/2006, 11:14
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Creo ver por donde anda el problema. Veamos: Tienes una tabla para bolsos llamada stockbolsos y otra para abrigos llamada stockabrigos. Luego esta el detalle del pedido que se llama itemsOrdered ¿Te das cuenta que ambas tablas primarias pueden tener el mismo ID si son autonuméricas? Eso es una incongruencia ya que un mismo numero puede identificar dos registros diferentes en el detalle de pedido. Si ese no es el poblema, te lo dará en el futuro.

Lo qur yo haría es crear dos tablas llamadas categorías y productos En productos un campo indexado a categorias y tomaría el ID de productos para el detalle de pedidos:

CREATE TABLE `categorias` (
`id` int(10) NOT NULL auto_increment,
`nombre` varchar(125) default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM

CREATE TABLE `productos` (
`id` int(10) NOT NULL auto_increment,
`idcategoria` int(10) NOT NULL default '0',
`nombre` varchar(125) default NULL,
`precio` decimal(10,2) default NULL,
PRIMARY KEY (`id`),
KEY `prod_x_cat` (`id`,`idcategoria`)
) TYPE=MyISAM

CREATE TABLE `DETA_PEDIDO` (
`id` int(10) NOT NULL auto_increment,
`idpedido` int(10) NOT NULL,
`idproducto` int(10) NOT NULL,
`cantidad` int(4),
`precio` decimal(10,2),
PRIMARY KEY (`id`),
KEY main_pedido (`id`,`idpedido`),
KEY ped_x_prod (`id`,`idproducto`)
) TYPE=MyISAM

(presupongo que tienes ya la cabecera del pedido)

Esto sacaria todos los productos de todas las categorias del detalle de un pedido:

"SELECT categorias.nombre AS nom_categoria, productos.nombre AS nom_producto, productos.precio FROM productos, categorias, deta_pedido WHERE productos.idcategoria = categorias.id AND deta_pedido.idproducto = productos.id AND deta_pedido.idpedido = " & intOrderID

A ver si desde aqui podemos ayudarte y saber como quieres hacerlo.

Un saludo
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:21.