2016-12-06 1 views
0

私のSQLスキルは基本的ですが、中小企業向けの非営利データベースを設定しようとしています。各組織は異なる金融年間、いくつかのレコードを持つことになりますアクセスクエリ内の特定のフィールドデータを持つ最後のレコードのみを表示する

regno (organisation registration number, unique), 
fystart (date, financial year start), 
fyend (date, financial year end), 
income, 
exped (expenditure). 

: 私は財務データを持つテーブル(extract_financial)を持っています。すべての記録に収入と支出の値が含まれているわけではありません。

組織ごとに1つのレコード(regno、fyend、incomeを含む)のみを表示したい場合は、最新の収入があります。

は、私は同様の質問から適応し、次のスクリプトを試してみたが、それはうまくいきませんでした:

SELECT ef.regno, ef.fyend, ef.income 
FROM extract_financial ef 
    INNER JOIN 
    ( 
     SELECT regno, Max(fyend) AS MaxOfFyend 
     FROM extract_financial 
     GROUP BY regno 
    ) AS efx 
     ON ef.regno = efx.regno 
      AND ef.fyend = efx.MaxOfFyend 
WHERE ef.income IS NOT NULL 

クエリを各[レグノ]作品のための最新のエントリを見つけることが、問題があります最新のレコードは決して収入を得ていないと思っています...だから私はそれを必要としていると思いますか?

ありがとうございます、ありがとう!

答えて

0

あなたは近くです。 WHERE句は、サブクエリに行く必要があります:

SELECT ef.regno, ef.fyend, ef.income 
FROM extract_financial as ef INNER JOIN 
    (SELECT regno, Max(fyend) AS MaxOfFyend 
     FROM extract_financial as ef 
     WHERE ef.income IS NOT NULL 
     GROUP BY regno 
    ) AS efx 
    ON ef.regno = efx.regno AND ef.fyend = efx.MaxOfFyend; 
+0

おかげゴードン、そして後半の応答のために謝罪。このスクリプトを試してみると、ef.incomeとef.MaxOfFyendのパラメータを入力するように求められます。何かご意見は? – MayaR

+0

編集後に作業してください - ありがとうございます@Gordon! – MayaR

関連する問題