Concat SQL结果

Concat SQL结果,sql,ms-access,subquery,concatenation,Sql,Ms Access,Subquery,Concatenation,我对SQL非常陌生,我正在使用MS Access的ListBox组件,它需要一个查询来显示数据。 以下是进行查询所涉及的表: TABLE: Blocks +----+--------+ | ID | B_Name | +----+--------+ | 1 | blockF | | 2 | blockE | . . . TABLE: Rooms +----+------+--------+-------+-----+---------+-------+------+ | ID

我对SQL非常陌生,我正在使用MS Access的ListBox组件,它需要一个查询来显示数据。 以下是进行查询所涉及的表:

TABLE: Blocks +----+--------+ | ID | B_Name | +----+--------+ | 1 | blockF | | 2 | blockE | . . . TABLE: Rooms +----+------+--------+-------+-----+---------+-------+------+ | ID | B_ID | R_Name | Floor | PAX | E_Wing | BTC_R | Male | +----+------+--------+-------+-----+---------+-------+------+ | 1 | 1 | Room 1 | 2 | 10 | TRUE | TRUE | TRUE | | 2 | 1 | Room 2 | 2 | 10 | TRUE | TRUE | TRUE | | 3 | 2 | Room 1 | 1 | 10 | TRUE | FALSE | FALSE| . . . 其中,B_ID是显示1对多关系的块的外键 在街区和房间中,PAX是最大的空置量

TABLE: UserGroups +----+------+-------+-----------+ | ID | R_ID | Group | Occupants | +----+------+-------+-----------+ | 1 | 1 | SQ 1 | 4 | | 2 | 1 | SQ 2 | 5 | . . . 其中R_ID是显示1对多关系的房间的外键 在文件室和用户组之间

用户可以根据列中的条件筛选房间 楼,E_Wing,BTC_R,男和女

我的问题是如何基于过滤器显示所有房间 条件和结果表,例如:

*例如,当筛选条件为B_ID=1时*

TABLE: Query Result +--------+--------------+ | R_Name | ComplexQuery | +--------+--------------+ | Room 1 | 0 / 10 | | Room 2 | 9 / 10 | . . . ComplexQuery : "TOTAL OCCUPANTS / PAX" 到目前为止,我所取得的进展是不同的

SELECT SUM(UserGroups.Occupants) FROM UserGroups WHERE UserGroups.R_ID = DESIRED_ID SELECT Rooms.PAX FROM Rooms WHERE Rooms.ID = DESIRED_ID 如何在每个与筛选条件匹配的房间ID中迭代查询 如何将两个查询合并到一个查询中 我将如何将值作为占用者/PAX连接到单个列中
感谢您的帮助

如果我正确理解了您的问题,您需要使用LEFT JOIN、SUM和GROUP BY。以下是一些未经测试的代码-我认为您需要在join-in-Access周围加上括号:

SELECT R.R_Name, SUM(UG.Occupants) / R.Pax as PercentageOfRoomOccupied
FROM Rooms R
LEFT JOIN UserGroups UG ON R.Id = UG.R_Id
WHERE R.B_ID = 1
GROUP BY R.R_Name, R.Pax

祝您好运。

您也可以对ComplexQuery列使用连接:


CONCATISNULLSUMUG.acculations,0,“/”,R.Pax as ComplexQuery

嘿,太棒了,非常感谢!它工作完美!但是我仍然有一些格式化显示的问题。当房间里没有人时,列表框将显示空白而不是0。此外,该列还假设显示连接的字符串,其中包含+'/'+pax。我试过了:SUMUG.acculations+'/'+R.PAX,但它只显示blanksGlad,而且有效。要将这些值连接到字符串中,您应该能够使用&-类似SUMUG.acculators&/&R.Pax。将ISNULL函数包装在UG.acculations上,返回0-SUMISNULLUG.acculations,0。未经测试,但应接近。祝你好运。谢谢,使用Nz成功地将其正确显示。我仍然不确定是否使用左连接,即使在我阅读了所有教程之后,因为我需要进行类似的查询,但这次对于每个块总计:结果:|块F | 103/120 |块E | 99/120 |基本上比上一次查询高出另一个级别。每个街区每个房间的总居住人数。我尝试嵌套多个左连接,但效果不好。