-2

毎週出席するための 52 のはい/いいえの列があります..はいまたはいいえを入れる列の数を知るためにクエリを作成したいです...誰かがこの問題を解決するのを手伝ってくれますか? Access クエリの推奨サイトやコミュニティをご存知でしたら教えてください。ありがとう。

4

2 に答える 2

1

これはデザインが悪いと思います。最初の正規形を破ります。

ユーザー テーブル、会議テーブル、およびユーザーを参加した会議にリンクする多対多の JOIN テーブルを想像できます。

すべての会議を照会すると、参加可能な日付がわかります。

user_meeting JOIN テーブルを使用して user テーブルを JOIN すると、特定のユーザーが参加した会議がわかります。

考えられるすべての会議と特定のユーザーが参加した日付の 2 つのセットができました。差額を設定すると、ユーザーが出席しなかった可能性のある日付が表示されます。

于 2012-11-07T15:06:32.253 に答える
0

これは、リストを操作する方法の大まかなスケッチです。間違いなく他のより良い方法がありますが、それは出発点です.

3 週間のギャップ:

SELECT b.UserID, b.WeekNo, (SELECT Top 1 WeekNo 
    FROM (SELECT * FROM table2 WHERE Attended=True) a 
    WHERE a.WeekNo > b.WeekNo) AS [next]
FROM (SELECT * FROM table2 WHERE Attended=True)  AS b
WHERE (((b.UserID)=1) AND (((SELECT Top 1 WeekNo 
    FROM (SELECT * FROM table2 WHERE Attended=True) a 
    WHERE a.WeekNo > b.WeekNo))>[b].[WeekNo]+3))
ORDER BY b.WeekNo;

出席回数:

SELECT Table2.UserID, Sum(Abs([Attended])) AS Attend
FROM Table2
GROUP BY Table2.UserID;

テーブル:

UserID  WeekNo  Attended
1       1       True
1       2       True
1       3       True
1       4       True
1       5       False
1       6       False
1       7       True
1       8       True
1       9       False
1       10      False
1       11      False
1       12      True
1       13      True
1       14      True
于 2012-11-07T16:31:34.957 に答える