2013-07-11 24 views
0

我有一個數據庫表等返回具有相同的值最大列值的行如下:從另一列

創建表#TEMP(ID INT,數字1 INT,NUMBER2 INT)

INSERT INTO #TEMP( 111,123,10)

INSERT INTO #TEMP(111,223,10)

INSERT INTO #TEMP(111,323,10)

INSERT INTO #TEMP(112,123,11 )

INSERT INTO #TEMP(112,223,11)

INSERT INTO #TEMP(112,333,11)

INSERT INTO #TEMP(113,124,12)

INSERT INTO #TEMP(113,126,12)

INSERT INTO #TEMP(114,128,121)

我已經工作的查詢,但仍然沒有運氣。我尋找返回以下結果:

ID數字1 NUMBER2

在結果集需要返回具有相同ID值的列Number1的最大值的行。

+0

你是怎麼嘗試到目前爲止?什麼是問題,你得到一個錯誤/ – logixologist

+0

我嘗試使用從#temp選擇MAX(Number1),ID,Number2。但它只返回一行。 – ncoder

回答

1

此SQL修復您的SQL :-),我想返回答案,你是後:

DECLARE @temp table (ID INT, Number1 INT, Number2 INT); 
INSERT INTO @temp (ID,Number1, Number2) VALUES (111, 123, 10) 
INSERT INTO @temp (ID,Number1, Number2) VALUES (111, 223, 10) 
INSERT INTO @temp (ID,Number1, Number2) VALUES (111, 323, 10) 
INSERT INTO @temp (ID,Number1, Number2) VALUES (112, 123, 11) 
INSERT INTO @temp (ID,Number1, Number2) VALUES (112, 223, 11) 
INSERT INTO @temp (ID,Number1, Number2) VALUES (112, 333, 11) 
INSERT INTO @temp (ID,Number1, Number2) VALUES (113, 124, 12) 
INSERT INTO @temp (ID,Number1, Number2) VALUES (113, 126, 12) 
INSERT INTO @temp (ID,Number1, Number2) VALUES (114, 128, 121) 


SELECT DISTINCT T1.ID, T1.Number1, T1.Number2 
FROM @temp T1 
JOIN @temp T2 ON T1.ID = T2.ID AND T1.Number1=(SELECT MAX(Number1) FROM @temp T3 WHERE T3.ID=T1.ID) 

一切順利, 邁克爾

+0

謝謝@邁克爾莫雷諾 – ncoder

0
SELECT ID, Max(Number1) as Number1, Number2 FROM #temp group by ID, Number2 

我相信你正在尋找GROUP條款。它返回這個:

111 323 10 
112 333 11 
113 126 12 
114 128 121 

謝謝@MichaelMoreno指出。我認爲這是OP的一個錯字,我沒有將其作爲解決方案。他真的在要求SELECT的方式。以下是更正代碼:

Create table #temp(ID INT, Number1 INT, Number2 INT) 

INSERT INTO #temp values(111, 123, 10) 

INSERT INTO #temp values(111, 223, 10) 

INSERT INTO #temp values(111, 323, 10) 

INSERT INTO #temp values(112, 123, 11) 

INSERT INTO #temp values(112, 223, 11) 

INSERT INTO #temp values(112, 333, 11) 

INSERT INTO #temp values(113, 124, 12) 

INSERT INTO #temp values(113, 126, 12) 

INSERT INTO #temp values(114, 128, 121) 
+0

謝謝@logixologist – ncoder