如果某些触发解决方案已经涵盖了这一点,但我无法让它们适用于我的场景,请提前道歉。
我有一个超过 50,000 行的表,所有行都有一个ID
,大约有 5000 个不同的 ID 值。表中可能有 100 行instrumentID = 1
和 50行,instrumentID = 2
但它们的列条目会略有不同。所以我可以写一个
SELECT * from tbl WHERE instrumentID = 1
并让它返回 100 行(我知道这很简单,但要清楚)
我需要做的是在每次找到仪器 ID 时形成一个递增值,所以我尝试了这样的东西:
IntIndex INT IDENTITY(1,1),
dDateStart DATE,
IntInstrumentID INT,
IntIndex1 AS IntInstrumentID + IntIndex,
在表创建步骤。
但是,无论在表中的何处找到记录,我都需要在找到IntIndex1
an 时递增instrumentID
,以便仅通过查看最后一个IntIndex1
值就可以有效地提供记录计数。而不是上面所做的,它会在表的所有行上递增,而不管instrumentID
你会得到 5001,4002,4003 等。
例如:对于 intInstruments 5000 和 4000
intInstrumentID | IntIndex1
--------- ------------------
5000 | 5001
5000 | 5002
4000 | 4001
5000 | 5003
4000 | 4002
我需要这样做的原因是因为我需要根据这些值加入两个表(每个表的开始和结束日期instrumentID
)。我已经尝试过GROUP BY
等,但这在两个表中都不起作用,然后 JOIN 不起作用。
非常感谢