2017-07-08 9 views
-1

こんにちは、私はAccessでSQLを使い慣れていて、どこででもなくでデータベースで11番目のレコードを見つけようとしています。誰かがアイディアを持っているかどうか疑問に思っていた。Access SQLで11番目のエントリを見つけるには

SELECT TOP 1 Passenger.Name, SUM(Manifest.Ticketprice) AS [Total Amount 
Spent on Tickets] 
FROM Passenger INNER JOIN Manifest ON Passenger.PassengerNumber = 
Manifest.PassengerNumber 
GROUP BY Passenger.Name 
WHERE Passenger.Name NOT IN 

(

SELECT TOP 10 Passenger.Name 
FROM Passenger INNER JOIN Manifest ON Passenger.PassengerNumber = 
Manifest.PassengerNumber 
GROUP BY Passenger.Name 
ORDER BY SUM(Manifest.Ticketprice) DESC; 

) 
; 

答えて

1

本当に近いです。

SELECT TOP 1 Passenger.Name, SUM(Manifest.Ticketprice) AS [Total Amount 
Spent on Tickets] 
FROM Passenger INNER JOIN 
    Manifest 
    ON Passenger.PassengerNumber = Manifest.PassengerNumber 
GROUP BY Passenger.Name 
WHERE Passenger.Name NOT IN (
      SELECT TOP 10 Passenger.Name 
      FROM Passenger INNER JOIN 
       Manifest 
       ON Passenger.PassengerNumber = Manifest.PassengerNumber 
      GROUP BY Passenger.Name 
      ORDER BY SUM(Manifest.Ticketprice) DESC; 
     ) ; 

乗客の名前とチケットの価格とを比較する必要があります。

チケット価格を使用するクエリを書くには他の方法もありますが、乗客名を使用することもできます。

注:passenger.numberは一意その後、joinがサブクエリで必要とされない、各乗客(だけでなく、名前を識別する場合

+0

Manifest.Ticketpriceが誤って古いバージョンをコピーした事故だった私はまだ取得しています。このエラーが表示される理由を理解できません。 –

+0

*名前*は[予約語]です(https://support.office.com/en-us/article/Access- 2007-reserved-words-and-symbols-E33EB3A9-8BAA-4335-9F57-DA237C63EABE)を使用してください。バッククォートまたは大括弧でエスケープしてください。 – Parfait

関連する問題