簡體   English   中英

SQL-如何找到前1行?

[英]SQL- how to find the top 1 row?

我必須為每個帳戶找到有效日期的前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

您能幫我查詢一下嗎?

更新了問題

你可以試試

SELECT account, MIN(dt_effective) FROM your_table
GROUP BY account
SELECT account, MAX(dt_effective)
FROM [table]
GROUP BY account
SELECT account, MAX(dt_effective)
FROM yourTableName
GROUP BY account

如果您需要輸入第一個生效日期,只需將max更改為min

SELECT account, MIN(dt_effective)
FROM yourTableName
GROUP BY account

嘗試這個:

select account, MAX(dt_effective) from table group by account;

我已經嘗試過下面提到的查詢,並按預期工作。

    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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM