如何根据第二个数据库的另一个字段的计算更新一个字段?
How can I update the a field based on a calculation of another field of a second DB?
非常感谢您帮助创建 SQL 查询。
我有一个名为 Purchases
的 table。
table 中有一列名为 PurchaseGender,目前没有任何信息。
我有另一个名为 Additional Info
的 table,有 2 列:MalePurchases 和 FemalePurchases。这两列中的每一列都填充了数字。
这些列将是:
Client Id
FemalePurchases
MalePurchases
1234
10
2
5678
3
5
我想根据计算填充 Purchases
的 PurchaseGender 列。
继续上面的例子,我想表明一个人的 PurchaseGender 是 Female 是他们购买了更多的女性物品。
另一方面,如果他们购买了更多男性商品,PurchaseGender 将为 Male
对于客户 1234,他们的 PurchaseGender 将是女性,而对于客户 5678,他们的 PurchaseGender 将是男性。
两个 table 都有共同的 Client ID
列。
SQL 查询是什么样的?
假设'DB'在这里表示table...
编辑:将 CASE
表达式移动到 CTE,并向 UPDATE
添加了一个 WHERE
子句,重复添加到 运行。
;WITH PGender
AS
(
SELECT a.ClientId,
CASE WHEN a.FemalePurchases > a.MalePurchases THEN 'Female'
WHEN a.FemalePurchases < a.MalePurchases THEN 'Male'
ELSE 'Balanced' END AS 'PurchaseGender'
FROM AdditionalInfo a
)
UPDATE p
SET p.PurchaseGender = pg.PurchaseGender
FROM Purchases p
INNER JOIN PGender pg ON p.ClientId = pg.ClientId
WHERE p.PurchaseGender != pg.PurchaseGender
非常感谢您帮助创建 SQL 查询。
我有一个名为 Purchases
的 table。
table 中有一列名为 PurchaseGender,目前没有任何信息。
我有另一个名为 Additional Info
的 table,有 2 列:MalePurchases 和 FemalePurchases。这两列中的每一列都填充了数字。
这些列将是:
Client Id | FemalePurchases | MalePurchases |
---|---|---|
1234 | 10 | 2 |
5678 | 3 | 5 |
我想根据计算填充 Purchases
的 PurchaseGender 列。
继续上面的例子,我想表明一个人的 PurchaseGender 是 Female 是他们购买了更多的女性物品。 另一方面,如果他们购买了更多男性商品,PurchaseGender 将为 Male
对于客户 1234,他们的 PurchaseGender 将是女性,而对于客户 5678,他们的 PurchaseGender 将是男性。
两个 table 都有共同的 Client ID
列。
SQL 查询是什么样的?
假设'DB'在这里表示table...
编辑:将 CASE
表达式移动到 CTE,并向 UPDATE
添加了一个 WHERE
子句,重复添加到 运行。
;WITH PGender
AS
(
SELECT a.ClientId,
CASE WHEN a.FemalePurchases > a.MalePurchases THEN 'Female'
WHEN a.FemalePurchases < a.MalePurchases THEN 'Male'
ELSE 'Balanced' END AS 'PurchaseGender'
FROM AdditionalInfo a
)
UPDATE p
SET p.PurchaseGender = pg.PurchaseGender
FROM Purchases p
INNER JOIN PGender pg ON p.ClientId = pg.ClientId
WHERE p.PurchaseGender != pg.PurchaseGender