0

各アカウントのeffective_dateの上位1行を見つける必要があります

account    dt_effective
-------------------------
1    14-04-2012
1    15-04-2012
2    13-02-2011
2    11-03-2012
3    1-01-2010
3    02-02-2010
3    05-01-2012

答えは:でなければなりません

account     dt_effective
-------------------------
1    14-04-2012
2    13-02-2011
3    1-01-2010

これを見つけるためのクエリを手伝ってくれませんか?

質問を更新しました

4

5 に答える 5

1

あなたは試すことができます

SELECT account, MIN(dt_effective) FROM your_table
GROUP BY account
于 2012-04-17T07:46:24.507 に答える
1
SELECT account, MAX(dt_effective)
FROM [table]
GROUP BY account
于 2012-04-17T07:46:47.347 に答える
1
SELECT account, MAX(dt_effective)
FROM yourTableName
GROUP BY account

最初の発効日を入力する必要がある場合は、最大値を最小値に変更してください

SELECT account, MIN(dt_effective)
FROM yourTableName
GROUP BY account
于 2012-04-17T07:49:06.853 に答える
0

これを試して:

select account, MAX(dt_effective) from table group by account;
于 2012-04-17T07:47:08.737 に答える
0

私は以下のクエリを試しましたが、期待どおりに機能します。

    DECLARE @T TABLE(ACCOUNTID INT, ACCOUNTDATE DATETIME)
INSERT INTO @T
VALUES(1,    CONVERT(DATE,'14-04-2012',105))
INSERT INTO @T
VALUES(1,    CONVERT(DATE,'15-04-2012',105))
INSERT INTO @T
VALUES(2,    CONVERT(DATE,'13-02-2011',105))
INSERT INTO @T
VALUES(2,    CONVERT(DATE,'11-03-2012',105))
INSERT INTO @T
VALUES(3,    CONVERT(DATE,'1-01-2010',105))
INSERT INTO @T
VALUES(3,   CONVERT(DATE,'02-02-2010',105))
INSERT INTO @T
VALUES(3,    CONVERT(DATE,'05-01-2012',105))

SELECT * FROM @T

SELECT ACCOUNTID, MAX(ACCOUNTDATE) FROM @T
GROUP BY ACCOUNTID
于 2012-04-17T07:58:04.880 に答える