一个嵌套子查询问题
select distinct 名称,项目,类别,
a.数量 as 总数量,
(
select 领取数量 from 表2 aa
join 表3 bb on bb.合同号 = aa.合同号
where bb.项目编号 = '20060102150001'
and aa.材料编号 = a.材料编号
) as 领取数量
from 表1 a
join 表4 b on a.ID = b.ID
where a.项目编号 = '20060102150001'
根据查询的项目编号不一样,有时候会出现 “子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。”错误信息
添加 "top 1"关键字正常运行;
改写成
select distinct
名称,项目,类别,
a.数量 as 总数量,
(
select top 1领取数量 from 表2 aa
join 表3 bb on bb.合同号 = aa.合同号
where bb.项目编号 = '20060102150001'
and aa.材料编号 = a.材料编号
) as 领取数量
from 表1 a
join 表4 b on a.ID = b.ID
where a.项目编号 = '20060102150001'
出现这种问题的原因是:主查询与子查询记录数量不一致
请问加"top 1"之后 对最后的结果会有什么影响?得到的结果与不加关键字结果完全一样吗?