値 + 同じテーブルの別の値と、結果を提供した他の ID との最小差を返すクエリの作成に助けが必要です (さらに、合計を値自体の合計にすることはできません)。
テーブル:
ID Value
1 1
2 2
3 5
4 -10
5 -5
6 3
7 -15
期待される結果:
ID Value MinDif IDofTheOtherValue
1 1 3 2 <-- MinDif = 1 + 2 (ID 1 + ID 2)
2 2 3 1 <-- MinDif = 2 + 1 (ID 2 + ID 1)
3 5 0 5 <-- MinDif = 5 + -5 (ID 3 + ID 5)
4 -10 -5 3 <-- MinDif = -10 + 5 (ID 4 + ID 3)
5 -5 0 3 <-- MinDif = -5 + 5 (ID 5 + ID 3)
6 3 -2 5 <-- MinDif = 3 + -5 (ID 6 + ID 5)
7 -15 -10 3 <-- MinDif = -15 + 5 (ID 7 + ID 3)
テーブルを作成するクエリは次のとおりです。
DECLARE @myTable TABLE(ID int, Value int)
INSERT INTO @myTable VALUES (1, 1), (2,2), (3, 5), (4, -10), (5, -5), (6, 3), (7, -15)
そして、これが私が試したことですが、これによりSQLエラーが発生します(集計またはサブクエリを含む式で集計関数を実行できません。)
SELECT m.ID, MIN(ABS(m.Value + (SELECT m2.Value FROM @myTable m2)))
FROM @myTable m