0

次のようなデータベーステーブルがあります。

テーブルを作成 #temp(ID INT, Number1 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 ナンバー2

111 323 10

112 333 11

113 126 12

114 128 121

結果セットでは、同じ ID 値の列 Number1 の最大値を持つ行を返す必要があります。

4

2 に答える 2

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)

頑張れ、マイケル

于 2013-07-11T23:15:20.880 に答える