9

次の TSQL クエリがあります。

SELECT DISTINCT MyTable1.Date
  FROM MyTable1 
INNER JOIN MyTable2 
ON MyTable1.Id = MyTable2.Id
WHERE Name = 'John' ORDER BY MyTable1.Date DESC

日付の長いリストを取得しますが、最初の行の最初のものだけが必要です。

どうすれば入手できますか?

ありがとうございます!

4

2 に答える 2

19

SQL Server では、以下を使用できますTOP

SELECT TOP 1 MyTable1.Date
FROM MyTable1 
INNER JOIN MyTable2 
  ON MyTable1.Id = MyTable2.Id
WHERE Name = 'John' 
ORDER BY MyTable1.Date DESC

を使用する必要がある場合はDISTINCT、次を使用できます。

SELECT TOP 1 x.Date
FROM
(
   SELECT DISTINCT MyTable1.Date
   FROM MyTable1 
   INNER JOIN MyTable2 
     ON MyTable1.Id = MyTable2.Id
    WHERE Name = 'John' 
) x
ORDER BY x.Date DESC

あるいは:

SELECT MAX(MyTable1.Date)
FROM MyTable1 
INNER JOIN MyTable2 
  ON MyTable1.Id = MyTable2.Id
WHERE Name = 'John' 
--ORDER BY MyTable1.Date DESC
于 2012-10-02T10:25:37.313 に答える