MS Access 2010中的列数?

时间:2012-11-07 15:02:33

标签: sql ms-access ms-access-2010

我每周都有52个是/否专栏参加考试..我想查询以了解放入的列数是或否......任何人都可以帮我解决这个问题吗?如果您知道有关Access查询的任何推荐网站或社区,请通知我。感谢。

2 个答案:

答案 0 :(得分:1)

我认为这是一个糟糕的设计。它打破了第一种正常形式。

我可以设想一个用户表,一个会议表和一个多对多的JOIN表,用户将用户与他们参加的会议联系起来。

查询所有会议会告诉您可以参加的日期。

使用user_meeting JOIN表加入用户表可以告诉您给定用户参加的会议。

现在您有两组:所有可能的会议以及给定用户参加的日期。如果您设置差异,您将看到用户未参加的潜在日期。

答案 1 :(得分:0)

以下是如何使用列表的草图。毫无疑问,还有其他更好的方法,但这是一个开始。

三个星期的差距:

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