我正在尝试从select语句更新表,但没有任何行受到影响。如果我运行select语句,我会得到结果,所以我不确定。 在示例中,我缩小了where子句。 任何帮助将不胜感激。
我的选择
select
a.Code,
a.ItemGroup,
a.Pack,
a.bar_code,
WHStockLink,WHUseInfoDefs,
b.[iBinLocationID],
c.cBinLocationDescription,
ucIIWBin1,
WHPackCode,
WHBarCode,
IdWhseStk
from
WhseStk b
join StkItem a on a.StockLink = WHStockLink
inner join _btblBINLocation c on c.idBinLocation = b.iBinLocationID
where
WHWhseID = 3 and
IdWhseStk = 1003000221089
order by WHStockLink
我的更新
update WhseStk
set ucIIWBin1 = t1.cBinLocationDescription
from (
select
a.Code,
a.ItemGroup,
a.Pack,
a.bar_code,
WHStockLink,
WHUseInfoDefs,
b.[iBinLocationID],
c.cBinLocationDescription,
ucIIWBin1,
WHPackCode,
WHBarCode,
IdWhseStk
from
WhseStk b
join StkItem a on a.StockLink = WHStockLink
join _btblBINLocation c on c.idBinLocation = b.iBinLocationID
--where WHWhseID = 5 and c.idBinLocation = b.iBinLocationID
) t1
where WHWhseID = 5
如果我对其进行调整,则每一行都会受到相同值的影响。
我要使用的实际上是使用股票链接和Whse进行匹配,并在同一张表(即ucIIWBin1, ucIIWBin2, ucIIWBin13
)中填充了3个新的用户定义字段,它们是条形码的Bin Description(与另一个表连接)并从该表中打包。
哪个:
Bin:
库存:
答案 0 :(得分:1)
在标记问题tsql
时,我假设您正在使用sql-server。
在这种情况下,您的JOIN
语句中可以有UPDATE
个。根据您显示的查询,语法如下:
UPDATE a
SET a.ucIIWBin1 = c.cBinLocationDescription
FROM WhseStk a
INNER JOIN StkItem b ON b.StockLink = a.WHStockLink
INNER JOIN _btblBINLocation c on c.idBinLocation = a.iBinLocationID
WHERE a.WHWhseID = 5
正如您提到的查询范围缩小时一样,您可能需要改写上面的示例(特别是,您提到需要更新3个字段,而在代码中仅显示一个字段)。