SQL select 生成套用信函的语句

SQL select statement for generating form letters

我目前在 MS Access 中有一个数据库,我需要更新我们生成套用信函的方式。 我们使用我 10 年前进行的查询来生成出勤证书。

SELECT doctors.address, seminar_title, seminar_date, first_name, last_name
FROM doctors, seminars, registrations
WHERE seminars.seminar_id=[Seminar] AND registrations.seminar_id=seminars.seminar_id AND 
      registrations.dr_id=doctors.dr_id
ORDER BY doctors.last_name;

无论您输入什么研讨会 ID,结果都是一组字母。每个字母代表一个医生的个人注册。

现在的问题是我们有一个额外的 table(执照),我需要每个字母显示医生可能拥有的 1 到 5 个执照。 Licenses table 中的字段是:license_ID、doctor_id、license_type、state 和 license_number.

我可以显示一个许可证,但要显示不同数量的许可证号和状态,每个都匹配到发给其被许可人的信中,这超出了我目前所知的范围。

欢迎任何意见。

您需要创建一个子报表,列出收信人的医生的所有执照。首先,您需要一个 table 链接医生和他们拥有的执照(例如“doctor_licenses”),字段为 dr_id 和 license_id。将 doctors.dr_id 添加到上面的查询中,使其成为主报表记录源的一部分。然后创建第二份报告以显示每位医生的执照。您的第二份报告的记录源类似于

SELECT dr_id,
license_type
FROM doctor_licenses
INNER JOIN licenses
ON  doctor_licenses.license_id = licenses.license_id

将第二个报表作为子报表添加到主报表中。 Link 通过将其“Link 主字段”和“Link 子字段”属性都设置为 dr_id,将子报表添加到主报表。有关子报表的更多信息以及如何在此处创建和使用它们: https://support.microsoft.com/en-us/office/create-and-use-subreports-816f987a-4615-4058-8f20-ce817093bb33

编辑,因为我无法对您的原始 post 发表评论,您仍然需要使用子报表列出医生执照,因为医生和执照之间存在 one-to-many 关系(一个医生可以拥有一张或多张执照)。如果您尝试将许可证列表添加为逗号分隔列表或与您的报告类似的内容,您将不得不使用更复杂的方法。请查看子报表解决方案,如果不能满足您的需求,请更具体地说明您的要求。