別のテーブルで等しい値を持つテーブルからすべての行 (更新する必要があるのは 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;
(Nombre と Item が同じである prodnuevos の Costo と Cantidad を使用して、prod で PrecioCompra、PrecioVenta と Cantidad を更新します)
上記のクエリは明らかに機能しませんが、問題を説明したかっただけです。クエリのさまざまな組み合わせを試してみましたが、まったく成功しました。(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))
しかし結果が出ず…
私は何か間違ったことをしていますか?? それともまったく別のクエリですか?? 前もって感謝します。