Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Insert con select utilizando values

Estas en el tema de Insert con select utilizando values en el foro de SQL Server en Foros del Web. buenas a todos amigos del foros del web resulta que tengo el siguiente problemita.. necesito hacer un un insert de tal manera que me consulte ...
  #1 (permalink)  
Antiguo 20/09/2013, 15:50
Avatar de EderBarriosCamargo  
Fecha de Ingreso: marzo-2013
Mensajes: 55
Antigüedad: 11 años, 8 meses
Puntos: 0
Insert con select utilizando values

buenas a todos amigos del foros del web resulta que tengo el siguiente problemita..
necesito hacer un un insert de tal manera que me consulte un la tabla pedidos el ultimo pedido realizado para continuar con un consecutivo
ejemplo
TABLA Pedidos
IdPedido---CodigoCliente---NombreCliente---Total
0001 --- 1234 --- fulanito --- 300
0002 --- 234 ---- fulanito2 --- 350


TABLA ProductosDelPedido
IdPedido---Idarticulo---NombreArticulo
0001 --- 1114 ---Old Pard
0001 ----1113 ----GINEBRA
0002 ----276 --- Detergente Dos


Lo que he echo de esta consulta es lo siguiente.
previamente inserto los datos del pedido y confirmo que llegan a la base de datos.
a la hora de insertar los producto que pertenecen al ultimo pedido insertado lo hago de esta manera.

Código SQL:
Ver original
  1. INSERT INTO detalle_pedido (IdPedido, IdArticulo, CodigoArticulo, NombreArticulo,
  2. Presentacion, Cantidad, ValorUnitario, TotalIva, TotalIco, ValorTotal)
  3. VALUES ('". ($row["IdPedido"])."', '".$_POST["Articulo"]."', '".$_POST["CodigoArticulo"]."',
  4. '".$_POST["Nombre"]."', '".$_POST["Presentacion"]."', '".$_POST["Cantidad"]."',
  5. '".$_POST["ValorUnitario"]."' , '".$_POST["TotalIva"]."', '".$_POST["TotalIco"]."',
  6. '".$_POST["ValorTotal"]."')

Cita:
Editado: Código de programacion no permitido en foros de BBDD.
pero este metodo no funciona nien ya que algunos productos se cruzan con la con otros pedidos.
lo que se me ocurre es que hacer el algo como esto
Código SQL:
Ver original
  1. INSERT INTO productodelpedido VALUES( idpedido,idarticulo,nombrearticulo) VALUES ('select top 1 IdPedido from pedidos  order by IdPedido desc',$_pos['Idarticulo'],$_post['nombrearticulo']);
.
si alquien me puede ayudar le agradesco Gracias

Última edición por gnzsoloyo; 21/09/2013 a las 09:53 Razón: Leer las normas del foro, por favor.
  #2 (permalink)  
Antiguo 20/09/2013, 16:02
 
Fecha de Ingreso: mayo-2011
Mensajes: 47
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Insert con select utilizando values

Lo que mencionas, es mas facil de realizar utilizando triggers, pero esto se realiza en el diseño de la DB.
  #3 (permalink)  
Antiguo 20/09/2013, 16:07
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Insert con select utilizando values

como te mencionan lo mas factible seria utilizar triggers, en donde no concuerdo es que los triggers sean parte del diseño de la base de datos.......
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 21/09/2013, 08:25
Avatar de otreblanc  
Fecha de Ingreso: mayo-2005
Ubicación: Chiapas, la última frontera...
Mensajes: 73
Antigüedad: 19 años, 6 meses
Puntos: 0
Respuesta: Insert con select utilizando values

Implementa en tu DB una tabla adicional que lleve el registro del ultimo pedido disponible; luego implementas un SP que te devuelva el ultimo pedido disponible y al mismo tiempo que incremente su numero en 1 para que otras consultas obtengan el siguiente consecutivo. Ahora, en tus INSERTS incluyes dicho numero obtenido desde el SP y de esta forma todos los articulos van ir etiquetados con su particular pedido, evitando el cruce de productos entre los diferentes pedidos.

Etiquetas: insert, select, sql, tabla, valor, values
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 08:46.