关于计算 SQL 中两个表中字段的唯一组合的问题。访问 2003。
table1: id, fld1, fld2
table2: id, dateAndTime
id 不是唯一的;表通过“id”连接。
我需要按日期(dd/mm/yy - 忽略时间)计算fld1
和fld2
(int)的不同组合。
更具体地说,我需要知道哪个日期具有 和 的最明显fld1
组合fld2
。
如果 table1 有
1, 101, 101 2、101、101 3, 101, 101 4、101、102 5、101、102 6、101、103
表2有
1,2010 年 12 月 1 日 2,2010 年 12 月 1 日 3,2010 年 12 月 1 日 1,2010 年 12 月 2 日 2, 2010 年 12 月 2 日 4, 2010 年 12 月 2 日 5,2010 年 12 月 2 日 6 日,2010 年 12 月 2 日
我需要
12/1/2010, 1 'only 1 unique combinatin of fld1 and fld2
12/2/2010, 3 'only 3 unique combinations of fld1 and fld2
但我只需要“12/2/2010, 3”输出,因为我只需要最大计数的日期和计数。
无法弄清楚如何在下面的正确答案的评论中格式化它 - 所以这里适用于 MS Access 2003。
Select TOP 5 theDay, count(*) AS theCount
FROM (
Select cdate(int(date_col)) As theDay
From tbl1 Inner Join tbl2 on tbl1.id=tbl2.id
Group By cdate(int(date_col)), fld1, fld2
) As X
Group By theDay
Order By 2 Desc;
这将按日期返回前 5 个组合(不考虑任何时间值)