【发布时间】:2014-10-08 11:29:22
【问题描述】:
我的 SQL 语句还没有工作。
这里我给你看实际的陈述:
UPDATE [sysdba].[Z_SKM]
SET Branche_Firma_val = (select Text from ZDEFPROPERTY
join ZSYSPROPERTY
on ZDEFPROPERTY.ZDEFPROPERTYID=ZSYSPROPERTY.ZDEFPROPERTYID
where ZSYSPROPERTY.SYSPROPERTYID =branche_firma_key and Valuetype = 'branch')
WHERE branche_firma_key is not null
说明: 我有一个名为 Z_SKM 的表,其中有两个重要列 1. Branche_firma_val ; 2. Branche_firma_key
我的目标是如果 branche_firma_key 不为空(所以它用一个键填充),则用 Zdefproperty 中的文本填充 Branche_firma_val。 在 ZDEFPROPERTY 中是 Text 列 在 ZSYSPROPERTY 中是 ID(键)列 这就是我加入他们的原因。 现在我在一行中有值 + 键
如果我让运行该语句,它会显示 = 运算符的许多结果。我猜选择的结果会返回 sysproperty=Firma_key 的所有文本。 我的问题是我不知道如何告诉它我需要为每一行另一个键..
你知道我的意思吗?
希望如此
干杯史蒂文
编辑:
例子
Z_SKM
Branche_firma_Key = 221
branch_firma_val = NULL
ZDEFPROPERTY 与 ZSYSPROPERTY 联接
Text="销售员"
syspropertyid = "221"
解决办法应该是:
branch_firma_key=221
branch_firma_val=销售员
每一行的问题是 Brnache_firma_key 不同。 我想我需要一个解决方案来生成迭代 sql 语句。
【问题讨论】:
-
内部查询可能返回不止一行,这就是更新失败的原因。您能否提供一些示例数据集来说明您的要求?
标签: sql sql-server join sql-update