我有一个名为Tests
的表,一个Points
表以及许多其他链接表。
我正在尝试选择测试信息的摘要,其中包括其他表中的数据。到目前为止一切正常,在Tests
选择查询中只有一列连接到一个值。目前为止,一切都好。
但是,这就是我挣扎的地方:对于每个测试,Points
表中记录了一系列点,这些点通过典型的外部/主要 (PK/FK) 键排列链接到Test
记录中,每个Test
中通常有数百甚至数千个Points
。
每个Test
的Points
按从1到n的顺序编号,因此每个新Test
的Points
编号再次从1开始。
在Tests
摘要选择中,我希望在Points.Number = 1
时看到Points.Value_X
的值,并在Points.Number = n
时看到另一列
Points.Value_X
这个想法是根据点的顺序号 1 以及该测试的最大订单号,仅从Points
表中检索两个值到测试摘要中。
Points.Value_X
是一个十进制数。
请有人帮我查询吗?
提前谢谢。
您可以使用条件聚合,如下所示:
select test_id,
max(case when num = 1 then value_x end) as value_x_1,
max(case when num = <n> then value_x end) as value_x_n
from points p
group by test_id;
运行查询时,假定<n>
值为常量。