我正在尝试从在另一个表上具有相同值的表中更新所有行(我只需要更新 3 列)...
这是我的桌子...
CREATE TABLE [dbo].[prods](
[IdProducto] [int] IDENTITY(1,1) NOT NULL,
[IdGrupo] [int] NULL,
[IdCategoria] [int] NULL,
[IdAlmacen] [varchar](50) NULL,
[Codigo] [varchar](50) NULL,
[Nombre] [varchar](50) NULL,
[Descripcion] [varchar](max) NULL,
[Cantidad] [int] NULL,
[Imagen] [varchar](max) NULL,
[StockMin] [int] NULL,
[StockMax] [int] NULL,
[Ancho] [varchar](50) NULL,
[Alto] [varchar](50) NULL,
[Largo] [varchar](50) NULL,
[Peso] [varchar](50) NULL,
[Volumen] [varchar](50) NULL,
[Color] [varchar](50) NULL,
[Material] [varchar](50) NULL,
[Presentacion] [varchar](50) NULL,
[bitPrecioVentaUnico] [int] NULL,
[PrecioCompra] [money] NULL,
[DescuentoCompra] [float] NULL,
[PrecioVenta] [money] NULL,
[DescuentoVenta] [float] NULL,
[Estado] [varchar](20) NULL
)
CREATE TABLE [dbo].[prodnuevos](
[Codigo] [int] NULL,
[itemid] [int] NULL,
[Item] [varchar](255) NULL,
[Categoria] [varchar](255) NULL,
[Cantidad] [int] NULL,
[Minima] [nvarchar](255) NULL,
[Costo] [money] NULL,
[Valor] [money] NULL,
[peso] [float] NULL,
[unidades] [float] NULL
)
我想做的是以下..
Update prods
Set prods.PrecioCompra = prodnuevos.Costo,
prods.PrecioVenta = prodnuevos.Costo,
prods.Cantidad = prodnuevos.Cantidad
WHERE prods.Nombre = prodnuevos.Item;
(使用 prodnuevos 的 Costo 和 Cantidad 更新 Prods 中的 PrecioCompra、PrecioVenta 和 Cantidad,其中 Nombre 和 Item 相同)
显然上面的查询不起作用,但我只是想解释我的问题。我已经尝试了各种成功的查询组合。(尽管必须更新 3 列,但我不介意是否必须使用 3 个不同的查询)
我尝试过类似的东西
UPDATE prods c
SET c.PrecioCompra =
(SELECT a.Costo
FROM prodnuevos AS a INNER JOIN
prods AS z ON z.Nombre = a.Item
WHERE (a.Item = c.Nombre))
但没有结果...
难道我做错了什么??或者这是一个完全不同的查询?提前致谢。