我需要幫助構建一個查詢,該查詢返回值+來自同一表的另一個值與給出結果的另一個值之間的最小差異(加上總和不能是本身的價值)選擇T-SQL中兩列總結的最小差異
表的總和:
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
你認爲表上的JOIN語句嗎? – simsim
我無法按照您的預期結果.... – bummi
我編輯了預期的結果,以澄清我想要得到的結果 – Jaska