2016-07-19 12 views
0

私はアクセスデータベースを持っていますが、その中でクエリの最新の結果を調べようとしています。私は、最新のローンが完了したかどうかを知りたい。例えばquery-msアクセスで最新の結果を見つけよう

tbl_Loans Exprに

LoanID Equipment Number Start Date Return Date Expr:IsOnLoan 
123  78457    16/05/2001 19/06/2003 Loan Complete 
124  79557    17/07/2016    Loan in Progress 
125  78457    03/06/2016    Loan in Progress 
126  79630    01/01/2015 01/01/2016 Loan Complete 
127  79360    02/03/2016    Loan in Progress 
128  78457    01/01/2016 01/03/2016 Loan Complete 

:IsOnLoanはIIFです:

IsOnLoan: IIf([Loans]![Return Date] Is Null,"Loan Active","Loan Complete") 

私はおそらく別の(クエリ内の別の列内の各機器の数の最新の結果を返したいですクエリ))

Loan ID Equipment Number Start Date Return Date Expr:IsOnLoan 
125  78457    03/06/2016    Loan in Progress 
127  79360    02/03/2016    Loan in Progress 
128  78457    01/01/2016 01/03/2016 Loan Complete 

マイクロソフトのサポートページでは、「トップ」以外の私は内部結合を使っているのを見たことがあり、どちらも働くことはできません。

すべてのヘルプは大幅にこれを処理する

答えて

0

一つの方法は、あなたのtbl_Loansテーブルと各機器番号の最新の日付を特定サブクエリの間INNER JOINを使用することです

感謝を感謝しています。

SELECT t1.LoanID, 
     t1.[Equipment Number], 
     t1.[Start Date], 
     t1.[Return Date], 
     t1.[Expr:IsOnLoan] 
FROM tbl_Loans AS t1 
INNER JOIN 
(
    SELECT [Equipment Number], MAX([Start Date]) AS [Start Date] 
    FROM tbl_Loans 
    GROUP BY [Equipment Number] 
) AS t2 
    ON t1.[Equipment Number] = t2.[Equipment Number] AND 
     t1.[Start Date] = t2.[Start Date] 
+0

ありがとうございました。私は最後の数日間これを使用しようとしてきましたが、それを動作させるようには思えません。私はいくつかのエラーが発生します。最初は、クエリ定義の選択リストで「開始日」というエイリアスによって循環参照が発生しました。私は 'AS [開始日]をMaxStartに変更することでこれを変更しようとしました。しかし、私はエラーが発生しました 'メインクエリFROM句にEXISTS予約語を使用せずに複数のフィールドを返すことができるサブクエリを作成しました。サブクエリのselect文を修正して、結果を1つだけ戻します。私はこれをどのように解決するかについてちょっと分かりません。 – TerrorPenguin

+0

エラーは何ですか? –

+0

申し訳ありません、入力を打った後に投稿を編集していました! t1。[開始日]、t1。[返却日]、t1。[Expr:IsOnLoan] FROM tbl_Loans AS t1 INNER JOIN(t1。[機器番号]、t1。 [Equipment Number] = t2。[Equipment No.] AND t1。[Start Date](開始日)AS [MaxStart] FROM tbl_Loans GROUP BY [設備番号] AS t2 ON t1。 = t2。[MaxStart])フォーマットのお詫び – TerrorPenguin

関連する問題