子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。

weilong147247943 2008-10-17 04:08:40
create view view_select_assertremove
as
SELECT Remove_1.remid, dbo.Stock.stAsId, dbo.Stock.asName, dbo.Sort.soName, Remove_1.remTime, dbo.Stock.asStandard,dbo.Stock.asComponey, Remove_1.remCount,
dbo.Stock.stPrice, dbo.Stock.stPrice * Remove_1.remCount AS remmoney, Machine_1.machName, Address_1.adrName,
(SELECT dbo.Machine.machName
FROM dbo.Machine INNER JOIN
dbo.Address AS Address_2 ON dbo.Machine.machineId = Address_2.adrMachineId INNER JOIN
dbo.Remove AS Remove_2 ON Address_2.adrId = Remove_2.remIntoAdId) AS remintomachname,
(SELECT dbo.Address.adrName
FROM dbo.Address INNER JOIN
dbo.Remove ON dbo.Address.adrId = dbo.Remove.remIntoAdId) AS remintoadrname, Remove_1.remRemark
FROM dbo.Remove AS Remove_1 INNER JOIN
dbo.Asserts ON Remove_1.remAsId = dbo.Asserts.id INNER JOIN
dbo.Stock ON dbo.Asserts.asstockId = dbo.Stock.stId INNER JOIN
dbo.Address AS Address_1 INNER JOIN
dbo.Machine AS Machine_1 ON Address_1.adrMachineId = Machine_1.machineId ON dbo.Stock.stAddressId = Address_1.adrId INNER JOIN
dbo.Sort ON dbo.Stock.stSoId = dbo.Sort.soId
go

select * from view_select_assertremove

用这个视图查询数据的时候出现了“子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。” 这个错误。数据库没改数据前查的出. 请大家看看是怎么回事!
...全文
945 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
weilong147247943 2008-10-17
  • 打赏
  • 举报
回复
用了别名了。
中国风 2008-10-17
  • 打赏
  • 举报
回复
字查詢條件引用外部表
中国风 2008-10-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 weilong147247943 的回复:]
还有个问题,数据库里面的数据不同它显示的也不同!
有一个数据库显示的数据是错误的!(machName,adrName,remintoadrname,remintomachname这四列的值都相同!) 帮忙看看!
[/Quote]

注意子查詢的條件表名用別名
weilong147247943 2008-10-17
  • 打赏
  • 举报
回复
还有个问题,数据库里面的数据不同它显示的也不同!
   有一个数据库显示的数据是错误的!(machName,adrName,remintoadrname,remintomachname这四列的值都相同!) 帮忙看看!
weilong147247943 2008-10-17
  • 打赏
  • 举报
回复
   发错了,不好意思,刚没看到你们的答案!
weilong147247943 2008-10-17
  • 打赏
  • 举报
回复
要怎么改呢?
rockyvan 2008-10-17
  • 打赏
  • 举报
回复
把你這兩個子查詢改成左連接。
(SELECT dbo.Machine.machName 
FROM dbo.Machine INNER JOIN
dbo.Address AS Address_2 ON dbo.Machine.machineId = Address_2.adrMachineId INNER JOIN
dbo.Remove AS Remove_2 ON Address_2.adrId = Remove_2.remIntoAdId) AS remintomachname,

(SELECT dbo.Address.adrName
FROM dbo.Address INNER JOIN
dbo.Remove ON dbo.Address.adrId = dbo.Remove.remIntoAdId) AS remintoadrname
水族杰纶 2008-10-17
  • 打赏
  • 举报
回复
create view view_select_assertremove 
as
SELECT Remove_1.remid, dbo.Stock.stAsId, dbo.Stock.asName, dbo.Sort.soName, Remove_1.remTime, dbo.Stock.asStandard,dbo.Stock.asComponey, Remove_1.remCount,
dbo.Stock.stPrice, dbo.Stock.stPrice * Remove_1.remCount AS remmoney, Machine_1.machName, Address_1.adrName,
(SELECT top 1 dbo.Machine.machName
FROM dbo.Machine INNER JOIN
dbo.Address AS Address_2 ON dbo.Machine.machineId = Address_2.adrMachineId INNER JOIN
dbo.Remove AS Remove_2 ON Address_2.adrId = Remove_2.remIntoAdId) AS remintomachname,
(SELECT top 1 dbo.Address.adrName
FROM dbo.Address INNER JOIN
dbo.Remove ON dbo.Address.adrId = dbo.Remove.remIntoAdId) AS remintoadrname, Remove_1.remRemark
FROM dbo.Remove AS Remove_1 INNER JOIN
dbo.Asserts ON Remove_1.remAsId = dbo.Asserts.id INNER JOIN
dbo.Stock ON dbo.Asserts.asstockId = dbo.Stock.stId INNER JOIN
dbo.Address AS Address_1 INNER JOIN
dbo.Machine AS Machine_1 ON Address_1.adrMachineId = Machine_1.machineId ON dbo.Stock.stAddressId = Address_1.adrId INNER JOIN
dbo.Sort ON dbo.Stock.stSoId = dbo.Sort.soId
go
水族杰纶 2008-10-17
  • 打赏
  • 举报
回复
create view view_select_assertremove 
as
SELECT Remove_1.remid, dbo.Stock.stAsId, dbo.Stock.asName, dbo.Sort.soName, Remove_1.remTime, dbo.Stock.asStandard,dbo.Stock.asComponey, Remove_1.remCount,
dbo.Stock.stPrice, dbo.Stock.stPrice * Remove_1.remCount AS remmoney, Machine_1.machName, Address_1.adrName,
(SELECT top 1 dbo.Machine.machName
FROM dbo.Machine INNER JOIN
dbo.Address AS Address_2 ON dbo.Machine.machineId = Address_2.adrMachineId INNER JOIN
dbo.Remove AS Remove_2 ON Address_2.adrId = Remove_2.remIntoAdId) AS remintomachname,
(SELECT top 1 dbo.Address.adrName
FROM dbo.Address INNER JOIN
dbo.Remove ON dbo.Address.adrId = dbo.Remove.remIntoAdId) AS remintoadrname, Remove_1.remRemark
FROM dbo.Remove AS Remove_1 INNER JOIN
dbo.Asserts ON Remove_1.remAsId = dbo.Asserts.id INNER JOIN
dbo.Stock ON dbo.Asserts.asstockId = dbo.Stock.stId INNER JOIN
dbo.Address AS Address_1 INNER JOIN
dbo.Machine AS Machine_1 ON Address_1.adrMachineId = Machine_1.machineId ON dbo.Stock.stAddressId = Address_1.adrId INNER JOIN
dbo.Sort ON dbo.Stock.stSoId = dbo.Sort.soId
go
liangCK 2008-10-17
  • 打赏
  • 举报
回复
就是你的子查询返回了多个值..

所以是一对多的..可以尝试使用TOP 1
内容概要:本文介绍了软件定义汽车(SDV)的最佳实践案例,重点围绕基于Vector技术的电子电气(E/E)架构设计与实现。文档展示了高算力计算平台(HPC)、区域控制器(Zone ECU)和车载网络(如CAN、Ethernet)的系统架构布局,并结合AUTOSAR操作系统(Classic/Adaptive)、虚拟化(Hypervisor)和SOA服务设计,构建现代化车载系统。通过vCANdrive平台演示了从开发、测试(SIL/HIL)、到OTA升级的全流程,涵盖传感器、执行器、应用层软件及云端协同的集成方案。同展示了硬件原型(如树莓派、Triboard)和MICROSAR系列工具链在实际项目中的应用。; 适合人群:从事汽车电子系统开发、车载软件架构设计以及智能网联汽车研发的工程师和技术管理人员,具备一定的嵌入式系统或AUTOSAR基础者更佳。; 使用场景及目标:①理解软件定义汽车的整体架构设计方法;②掌握基于Vector工具链的HPC与区域控制器集成方案;③实现OTA更新、SIL/HIL测试、ETH-CAN通信转换等关键技术验证;④支持智能驾驶(ADAS)与智能座舱(IVI)系统的快速原型开发。; 阅读建议:建议结合Vector相关工具(如PREEvision、CANoe4SW、MICROSAR)进行实践操作,重点关注系统分层设计、通信机制与软件更新流程,同可参考文档中的硬件连接示意图与信号映射关系进行仿真与实车验证。

34,871

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧