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

Update precios

Estas en el tema de Update precios en el foro de SQL Server en Foros del Web. Buenas a todos, llevo algún tiempo con SQL pero hasta ahora lo hacia todo a "pelo" desde mi aplicación en VB6 directamente haciendo insert update ...
  #1 (permalink)  
Antiguo 25/04/2013, 17:04
 
Fecha de Ingreso: abril-2013
Mensajes: 4
Antigüedad: 11 años, 6 meses
Puntos: 0
Update precios

Buenas a todos, llevo algún tiempo con SQL pero hasta ahora lo hacia todo a "pelo" desde mi aplicación en VB6 directamente haciendo insert update y poco mas desde la conexión.

Ahora estoy intentando usar procedimientos almacenados y liberar un poco de esas tareas a la aplicación.

Tengo una update para hacer un procedimiento almacenado que no consigo hacerlo funcionar y no veo nada raro.
Son dos tablas:

ges_articulos (tabla de articulos)
=========
cref (codigo del articulo)
ultimo_costo (ultimo costo que quiero actualizar)

ges_albcompra_lin (tabla de lineas de albaranes de compra)
=============
articulo (codigo del articulo)
base_linea (precio con el que quiero actualizar )
Código SQL:
Ver original
  1. UPDATE ges_articulos
  2. SET ultimo_costo=albcompra.base_linea
  3. FROM dbo.ges_articulos cref
  4. INNER JOIN (SELECT articulo, base_linea FROM  ges_albcompra_lin GROUP BY articulo) AS albcompra
  5. ON ges_articulos.cref = ges_albcompra_lin.articulo

Lo que intento hacer es coger el ultimo precio de la tabla ges_albcompra_lin y actualizar el precio en la tabla ges_articulos

Gracias

Última edición por gnzsoloyo; 26/04/2013 a las 08:57
  #2 (permalink)  
Antiguo 25/04/2013, 17:14
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: Update precios

y cual es el error?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 25/04/2013, 17:47
 
Fecha de Ingreso: abril-2013
Mensajes: 4
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Update precios

Pues al comprobar la sentencia ( lo hago desde un access adp) me dice lo siguiente:

Error de ADO: El prefijo de columna 'dbo.ges_articulos' no coincide con un nombre de tabla o con un alias usado en la consulta.
El prefijo de columna'dbo.ges_albcompra_lin' no coincide con un nombre de tabla o con un alias usado en la consulta.
No se puede preparar la instrucción o instrucciones.
  #4 (permalink)  
Antiguo 26/04/2013, 08:44
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: Update precios

veo varios errores

UPDATE ges_articulos
SET ultimo_costo=albcompra.base_linea
FROM dbo.ges_articulos as t1 ---creo que esta de mas el dbo, otra cosa usa otro alias para esta tabla ya que tienes una columna que se llama cref
INNER JOIN (SELECT articulo, base_linea FROM ges_albcompra_lin GROUP BY articulo) AS albcompra
ON ges_articulos quita esta parte y usa
t1.cref = ges_--quita esto
albcompra_lin.articulo

y prueba si funciona :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 26/04/2013, 11:58
 
Fecha de Ingreso: abril-2013
Mensajes: 4
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Update precios

Cita:
Iniciado por Libras Ver Mensaje
veo varios errores

UPDATE ges_articulos
SET ultimo_costo=albcompra.base_linea
FROM dbo.ges_articulos as t1 ---creo que esta de mas el dbo, otra cosa usa otro alias para esta tabla ya que tienes una columna que se llama cref
INNER JOIN (SELECT articulo, base_linea FROM ges_albcompra_lin GROUP BY articulo) AS albcompra
ON ges_articulos quita esta parte y usa
t1.cref = ges_--quita esto
albcompra_lin.articulo

y prueba si funciona :)

Creo haber entendido esto:

UPDATE ges_articulos
SET ultimo_costo=albcompra.base_linea
FROM ges_articulos as t1
INNER JOIN (SELECT articulo, base_linea FROM ges_albcompra_lin GROUP BY articulo) AS albcompra
ON t1.cref = albcompra.articulo

Pero me dice que la columna ges_albcompra_lin.base_linea de la lista de seleccion no es valida, porque no esta contenida en una función de agregado ni en la clausula GROUP BY.
  #6 (permalink)  
Antiguo 26/04/2013, 13:26
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: Update precios

Código SQL:
Ver original
  1. UPDATE ges_articulos
  2. SET ultimo_costo=albcompra.base_linea
  3. FROM ges_articulos AS t1
  4. INNER JOIN (SELECT articulo, base_linea FROM ges_albcompra_lin GROUP BY articulo,base_linea) AS albcompra
  5. ON t1.cref = albcompra.articulo
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: funcion, insert, precios, select, sql, tabla, update
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 10:17.