我将两个值从一个表插入到另一个表中。其中一个插入值来自连接三个列值。我正在使用下面的查询,但错误是“子查询有多个值”。我们不能将“top 1”包含到子查询中,因为子查询给所有值都相同。
insert into dbo.tblCrucibleLdgDtls (R2IGTNo,TotalMtrlWgt)
Select R2IGTNo,
(select RTRIM(LTRIM(( CONCAT(ULTotalS1S2MtrlWgt,ULTotalS3S4MtrlWgt,ULTotalS5S6MtrlWgt)))) as TotalMtrlWgt
from dbo.tbl1RMWeighingDetails
where ULTotalS1S2MtrlWgt is not null or ULTotalS3S4MtrlWgt is not null or ULTotalS5S6MtrlWgt is not null
)
from dbo.tbl1RMWeighingDetails
where R2IGTNo like '%C%'
从表
解决办法可能很简单。我不是一个Maven。没有重复的和(ultotals1s2mtrlwgt,ultotals3s4mtrlwgt,ultotals5s6mtrlwgt)与r2igtno有独特的关系。就像如果r2igtno有b1,则ultotals1s2mtrlwgt有值,如果r2igtno有b2,则ultotals3s4mtrlwgt有值,如果r2igtno有b3,则ultotals5s6mtrlwgt有值。有了这个条件,查询就可以改变了。请建议。
3条答案
按热度按时间llycmphe1#
为表指定别名:
现在,内部/嵌套子查询可以引用
wdB
,它将表示表的外部示例。而且,它看起来更适合使用连接、应用或窗口功能。
lp0sw83n2#
解决方案取决于从内部查询中获取的行的类型。如果内部查询返回多个重复行,则解决方案更简单,只需使用不同的-
但是如果您的内部查询返回多个彼此不同的行,那么您必须重新访问您的需求。
pnwntuvh3#
我用cte得到了答案,在ms论坛上得到了建议
或者
不管怎样,谢谢大家-香卡