Agregar registro

Hola!
Estoy trabajando con sql y necesito agregar varios registros a una tabla. Tengo que coger los datos de tres tablas diferentes y lo ideal sería poderlo hacer con una sola instrucción, ya que son muchos registros nuevos los que se tienen que añadir.
Te adjunto la instrucción que he probado yo para que te hagas una idea, aunque no se si me habré explicado bien, es un poco lioso.
"INSERT INTO detallepedido (idpedido, codigo, cantidad, precio) SELECT pedidos.idpedido, carro.codigo, carro.cantidad, precios.precio FROM precios INNER JOIN (pedidos INNER JOIN carro ON pedidos.idcliente=carro.idcliente) ON carro.codigo=precios.codigo WHERE (carro.idcliente="+cliente+")"
Con esta instrucción no me funciona, la verdad es que no se que error da porque estoy trabajando con servlets y no se bien donde puedo mirar el error.
Muchas gracias

2 Respuestas

Respuesta
1
Sí creo que lo que debes hacer es probar la Select que utilizas para la inserción fuera del insert. Es decir,
ejecutar la query independientemente, y así veras si lo resultados obtenidos con el join coinciden con lo que tu buscas.
El error puede ser debido a incompatibilidad de campos, osea que intentes insertar un carácter en un numérico o que sean de distinto tamaño el origen y el destino, o que tengas más campos en la select que en el insert o al revés
Suerte.
Pablo.
Respuesta
1
Si es un poco tedioso la primera vez, pero después es fácil.
Te recomiendo hacer un select sencillo a la tabla precios y después unirla con pedidos y así haste obtener los cuatro capos que necesitas con las condiciones necesarias. Despues si puedes añedirle el INSERT INTO y listo.
Te envío este código a ver si te sirve :
INSER INTO Detallepedido VALUES (Select Pedidos.idpedido,carro.codigo, carro.cantidad, precios.precio FROM Precios,PEdidos,carro
WHERE pedidos.idcliente=carro.idcliente AND carro.codigo=precios.codigo AND carro.idcliente="+cliente+"
Analizando este código creo que te hace falta el VALUES del insert.
Me cuentas...
Muchísimas gracias por la rapidez, yo he tardado tanto porque he estado un tiempo fuera y no lo había podido mirar.
Ya lo he solucionado tenia un error en ña select

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas