8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

我可以对参加研讨会的人员创建一个查询,具有多对多关系,显示有多少个共同的研讨会的矩阵吗?

AlgorithmAce 3月前

52 0

我正在使用 MS Access 2016,我有一个访客表、一个研讨会表和一个链接参加表。我想查询这个表并得到一个数字矩阵,显示每个数字之间的关系......

我使用的是 MS Access 2016,我有一张访客表、一张研讨会表和一张链接出席表。我想查询这些表,并得到一个数字矩阵,以双向表格的形式显示每个表之间的关系。我想要的数字是它们有多少个共同的研讨会。

我想要实现的目标的例子
example of what I'm trying to achieve

我已经使用 vba 和一些糟糕的报告结构完成了此操作...现在用户想要过滤和更改内容。我希望可以将其作为查询来执行。我是 SQL 新手,所以希望有人可以在这里为我指明正确的方向。使用交叉表查询是否可行?我似乎找不到我需要的示例。

我迄今为止的尝试却很遗憾地失败了。

转换 Count(tblAttending.WorkshopID) 作为 CountOfWorkshopIDSELECT tblAttending.VisitorID,tblVisitors2.NameFROM tblAttending INNER JOIN tblVisitors2 ON tblAttending.VisitorID = tblVisitors2.VisitorIDGROUP BY tblAttending.VisitorID,tblVisitors2.NamePIVOT tblAttending.VisitorID;

最终,我决定这么做...

TRANSFORM nz(Sum(visitingpairs.CommonWorkshop))+0 AS SumOfCommonWorkshopSELECT visitingpairs.VisitorName1FROM (SELECT V1.VisitorID AS VisitorID1, V1.Name AS VisitorName1, V2.VisitorID AS VisitorID2, V2.Name AS VisitorName2, Nz(Count(A.WorkshopID),0) AS CommonWorkshopFROM (tblAttending AS A INNER JOIN tblVisitors AS V1 ON A.VisitorID = V1.VisitorID) INNER JOIN (tblAttending AS B INNER JOIN tblVisitors AS V2 ON B.VisitorID = V2.VisitorID) ON A.WorkshopID = B.WorkshopIDGROUP BY V1.VisitorID, V1.Name, V2.VisitorID, V2.Name) AS visitingpairsGROUP BY访问对。访客姓名1PIVOT 访问对。访客姓名2;

帖子版权声明 1、本帖标题:我可以对参加研讨会的人员创建一个查询,具有多对多关系,显示有多少个共同的研讨会的矩阵吗?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由AlgorithmAce在本站《vba》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 这对你有用吗:

    transform sum(t.cnt)
    select PersonRow
    from (
    select count(iif(a.WorkshopID<>b.WorkshopID, 1, null)) as Cnt, a.LastName as PersonRow, b.LastName as PersonColumn
    from (
    select av.VisitorID, av.LAstName, aa.WorkshopID
    FROM tblVisitor av
         inner join
         tblAttending aa
         on av.VisitorId=aa.VisitorID
    ) a
    inner join 
    (
    select av.VisitorID, av.LAstName, aa.WorkshopID
    FROM tblVisitor av
         inner join
         tblAttending aa
         on av.VisitorId=aa.VisitorID
    ) b
    on a.VisitorId<>b.VisitorId
    group by a.LastName, b.LastName )t
    group by PersonRow pivot PersonColumn
    

    测试很困难,因为您没有提供与所需输出相匹配的测试数据。

返回
作者最近主题: