-1

私は、ユーザーごとに複数の値を返すのに苦労しています。SelectDistinctのバリエーションを試してみましたが無駄になりました。userIDごとに1つの値のみを再調整するコードが必要です。

SELECT Roster.UserID, 
    EventLog.Type, 
    IIf([EventLog]![LogType] Like "Acc*" And [EventLog]![Action] Like "Wri*",[EventLog]![Date],Date()-183) AS [Review Date]
FROM EventLog 
INNER JOIN Roster 
    ON EventLog.UserID = Roster.UserID
GROUP BY Roster.UserID, 
    EventLog.Type, 
    IIf([EventLog]![LogType] Like "Acc*" And [EventLog]![Action] Like "Wri*",[EventLog]![Date],Date()-183)
HAVING (((EventLog.Type) Like "Att*"));

コードは、最初の基準を満たしたときにIIfから両方の値を返します。どうすればどちらかに制限できますか?

4

2 に答える 2

0

GROUP BY句に複数のフィールドをリストしたため、ユーザーごとに複数の値を取得しています。

    GROUP BY Roster.UserID, 
        EventLog.Type, 
        IIf([EventLog]![LogType] Like "Acc*" And 
[EventLog]![Action] Like "Wri*",[EventLog]![Date],Date()-183)

集計関数を実行していないため、なぜグループ化するのかわかりません。動作しますかSELECT DISTINCT

于 2012-11-21T15:24:34.500 に答える
0

フィードバックの皆さんに感謝します。Bethが応答し、テーブルとクエリをクリーンアップしてdBaseのコピーを送信したことに基づいて、問題はコードを少し追加するだけで解決したようです。

SELECT Roster.UserID, 
EventLog.Type, 
Max(IIf(EventLog!LogType Like "Acc*" And EventLog!Action Like "Wri*",EventLog!Date,Date()-183)) AS [Review Date]
FROM EventLog 
INNER JOIN Roster 
ON EventLog.UserID = Roster.UserID
GROUP BY Roster.UserID,
EventLog.Type
HAVING (((EventLog.Type) Like "Att*"));

ベスからのマルチフィールドのクリーンアップはおもてなしをしました!!!

于 2012-11-21T16:21:52.010 に答える