我有一个 SQL Server 表,其中包含与各种 s 相关Measurement
的几个不同s 的增量s:Attribute
Object
MeasurementID ObjectID Attribute1 Attribute2 Attribute3
100 1 'blue' 111 'large'
101 1 'blue' 114 'large'
102 1 'red' 114 'large'
103 1 'red' 117 'large'
104 1 'cyan' 118 'large'
105 2 'blue' 450 'huge'
106 3 'blue' 450 'huge'
107 3 'red' 450 'huge'
我的目标是找到一个有效的查询,给定一个特定的ObjectID
告诉我哪些属性更改以及何时更改。例如,假设ObjectID=1
. Attribute1
在MeasurementID=102
(from 'blue'
to 'red'
) 发生变化,对于Attribute2
atMeasurementID=101
和MeasurementID=103
以及Attribute3
在任何时候 ( NULL
) 也是如此。从概念上讲,我正在寻找满足这个伪代码定义的东西:
CREATE FUNCTION GetMeasurementChanges (ObjectID int, AttributeName varchar)
RETURNS @returnMeasurementIDs TABLE
(MeasurementID int) -- rows of MeasurementIDs
我可以想出一种缓慢的方法,通过逐个选择临时表Object
,Object
然后遍历行,测试每个行Attribute
,但我怀疑这会表现得很糟糕。
任何人有一个技巧或类似的问题,他们可以指出我吗?
谢谢!