0

Access 2003 データベースを持っていますが、試して修正するように依頼されました。私の MS Access スキルは限られているため、この質問をします。

クエリは次のようになります。

SELECT
  TBL_PropertyProgramMember.PropertyId,
  Max(TBL_PropertyProgramMember.To) AS MaxOfTo,
  TBL_PropertyProgramMember.BookingPriority
FROM
  TBL_PropertyProgramMember
GROUP BY
  TBL_PropertyProgramMember.PropertyId,
  TBL_PropertyProgramMember.BookingPriority;

unique 、各プロパティPropertyIdsの最大値、およびその最大値に関連付けられたを返す必要があります。上記のグループ化を使用すると、プロパティが複数回リストされている場合、複数の結果が得られます。ToBookingPriorityToBookingPriority

BookingPriorityグループ化を使用しているため、 Access がエラーをスローせずにグループ化を削除することはできません。

これはグループ化に関係していると確信していますが、修正方法がわかりません。BookingPriority値が変わる可能性があるため、最大値または最小値を取得するだけでは問題は解決しません。

4

1 に答える 1

2

(BookingPriority を返さずに) 最大値を計算してから、次のように結果に再び参加する必要があります。

SELECT 
TBL_PropertyProgramMember.PropertyID, 
M.MaxTo, 
TBL_PropertyProgramMember.BookingPriority

FROM 
(
SELECT 
TBL_PropertyProgramMember.PropertyID, 
Max(TBL_PropertyProgramMember.To) AS MaxTo
FROM 
TBL_PropertyProgramMember
GROUP BY 
TBL_PropertyProgramMember.PropertyID
) AS M 
INNER JOIN 
TBL_PropertyProgramMember 
ON (M.MaxTo = TBL_PropertyProgramMember.To) 
AND (M.PropertyID = TBL_PropertyProgramMember.PropertyID);

特定の BookingPriority に対して同じ最大の「To」列を持つレコードが複数ある場合を処理する必要があります。

于 2013-01-27T14:27:16.627 に答える