【问题标题】:At most one record can be returned by this subquery此子查询最多可以返回一条记录
【发布时间】:2013-09-24 06:57:07
【问题描述】:

我在我的 SQL 选择查询中遇到了这个错误。我该如何解决这个问题?

当我运行此查询时,如果HR_info 表中只有一条关于我的查询的记录,那么它会在组合框中显示该结果。如果此表中有多个记录,则显示此错误。

sSQL1 = "SELECT HR_Info.HR_ID, 
            (select hotel_name from hotel_info 
             where hotel_id = (select hotel_id 
                               from hr_info 
                               where hr_info.group_id = forms!pasenger_detail!group_id)) 
         FROM HR_Info 
         WHERE (((HR_Info.Group_ID) = [forms]![Pasenger_Detail]![Group_ID]));"

这里是hotel_info talbe 数据

这里是 hr_info 表数据

【问题讨论】:

    标签: ms-access ms-access-2007 vba ms-access-2010


    【解决方案1】:

    在您的子查询中尝试 TOP 1 或 MAX / MIN

    【讨论】:

    • 因为这是我们根据您提供的信息所能做出的最佳猜测。请分享错误消息,更多见解将帮助我们更好地理解问题,然后提出解决方案。
    • 先生,它对我有用,首先谢谢。但是我现在有一个新问题。问题是它根据标准给了我 hr_id,但它给了我酒店名称的错误结果。它将第一家酒店的酒店名称分配给所有 hr_id 字段,但它是错误的。
    • sSQL1 = "SELECT HR_Info.HR_ID, (select hotel_name from hotel_info where hotel_id = (select TOP 1 hotel_id from hr_info where hr_info.group_id=forms!passenger_detail!group_id)) FROM HR_Info WHERE (((HR_Info .Group_ID)=[forms]![Pasenger_Detail]![Group_ID]));"这是更改后的查询。
    • 我真的不知道你想要什么,如果你想通过一个特殊的组来获取所有的 HR_ID 和 hotel_name,你只需要通过 hotel_id 加入 HR_Info 和 hotel_info。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多