【发布时间】:2020-01-30 15:24:51
【问题描述】:
这对大多数人来说可能是相当基本的,但我想获得一些帮助。
使用 SQL Server 我有以下订单表(Excel 摘录以简化):
请注意有多个订单 (OrderID)。有些可能具有“PrimaryOrder”值,这意味着它们与现有的先前订单相关。相关订单收到第一个相关订单的“PrimaryOrder”,以及一个“OrderIndex”,指出它们进入的订单。 只有每组中的第一个订单具有价值。如果一个订单的“PrimaryOrder”为NULL,这意味着它是一个订单,我应该忽略它。
我需要的是,使用 SQL Server 更新命令为所有相关订单提供与其第一个相关订单的“价值”相同的“价值”。 对于具有“OrderIndex”> 1 的每个订单的含义,将其 Value 字段从 NULL 更新为其“PrimaryOrder”值。 如果 "PrimaryOrder" = 1 OR 为 NULL,则忽略且不更新。
尝试了一些简单的 INNER JOIN 但迷路了。 我认为它不应该太复杂,但我可能想多了。
谢谢!
【问题讨论】:
标签: sql sql-server sql-update