Sql server 将字段值与子查询合并错误:子查询返回了多个值。当子查询出现时,这是不允许的
我使用以下SQL语句创建了一个视图:Sql server 将字段值与子查询合并错误:子查询返回了多个值。当子查询出现时,这是不允许的,sql-server,subquery,Sql Server,Subquery,我使用以下SQL语句创建了一个视图: SELECT InventoryID, AccountCode, Description, Notes + N'N ' + (SELECT Deployment FROM dbo.Deployment WHERE (dbo.Inventory.InventoryID = InventoryID)) AS Remarks FROM dbo.Inventory 但这会返回一个错误
SELECT InventoryID, AccountCode, Description, Notes + N'N ' +
(SELECT Deployment
FROM dbo.Deployment
WHERE (dbo.Inventory.InventoryID = InventoryID)) AS Remarks
FROM dbo.Inventory
但这会返回一个错误子查询返回的值超过1。当子查询出现时,这是不允许的。
下面是我想要的表结构和示例输出:
是否可以将Notes
字段的值与具有多个值的子查询连接起来
更新:
这里是错误。我还将数据库结构包括在图像中
造成问题的不是
注释
,而是部署
。更准确地说,事实是部署表中有多行具有相同的库存id。
您可以使用STUFF
和FOR XML
从子查询返回连接字符串的单个结果,如下所示:
SELECT InventoryID,
AccountCode,
Description,
Notes + N'N ' +
(
SELECT STUFF(
(SELECT ',' + Deployment
FROM dbo.Deployment
WHERE t.InventoryID = InventoryID
FOR XML PATH(''))
, 1, 1, '')
) AS Remarks
FROM dbo.Inventory t
有关stuff和For xml如何协同工作来连接选定行中的字符串的说明,请阅读问题的根源不是
注释,而是部署。更准确地说,事实是部署表中有多行具有相同的库存id。
您可以使用STUFF
和FOR XML
从子查询返回连接字符串的单个结果,如下所示:
SELECT InventoryID,
AccountCode,
Description,
Notes + N'N ' +
(
SELECT STUFF(
(SELECT ',' + Deployment
FROM dbo.Deployment
WHERE t.InventoryID = InventoryID
FOR XML PATH(''))
, 1, 1, '')
) AS Remarks
FROM dbo.Inventory t
有关stuff和For xml如何协同工作以连接选定行中的字符串的解释,请阅读感谢您的回复,但我在“(”附近的WHERE子句中遇到了此错误错误。from子句中的错误:在“Inventory”附近。无法解析查询文本。
仍然在“WHERE子句附近”中遇到了此错误错误(“.FROM子句中的错误:靠近“t”。无法分析查询文本。
我在链接上看到了您的代码,它正在工作。为什么它在我的计算机上不工作?请参阅我更新的帖子。我在图像中包含了我的数据库结构。我不知道。请尝试在“新建查询”窗格中执行查询,而不是在“创建视图”中执行查询。”窗格中,查看发生了什么。是的,它可用于新查询。但我希望将此保存在视图中,以便基于视图创建报表。感谢您的回复,但我在靠近“”的WHERE子句中遇到了此错误错误(”。FROM子句中的错误:靠近“Inventory”。无法分析查询文本。
仍然在靠近“”的WHERE子句中遇到了错误错误(“.FROM子句中的错误:靠近“t”。无法分析查询文本。
我在链接上看到了您的代码,它正在工作。为什么它在我的计算机上不工作?请参阅我更新的帖子。我在图像中包含了我的数据库结构。我不知道。请尝试在“新建查询”窗格中执行查询,而不是在“创建视图”中执行查询。”窗格中,查看发生了什么。是的,它适用于新查询。但我希望将此保存在视图中,以便可以基于视图创建报告。