【问题标题】:Subquery returned more than 1 value.how to handle this and get multiple ids子查询返回超过 1 个值。如何处理并获取多个 id
【发布时间】:2016-10-18 06:21:44
【问题描述】:
SET @IdInternalSelection = (
    SELECT iss.IdInternalSelection 
    FROM HesSelection.InternalSelection iss 
    INNER JOIN HesSelection.ExtractedLabInternalSelection2CatPatientActivity cpa 
       ON iss.IdInternalSelection = cpa.IdInternalSelection               
    WHERE cpa.IdCatPatientActivity = @IdCatPatientActivity)

我将从另一个查询中得到IdCatPatientActivity 的输出。

基于这个IdCatPatientActivity,我需要设置IdInternalSelection,这对于一些IdCatPatientActivity ids 会失败。

这是因为 IdCatPatientActivity 是某些情况下与多个 IdInternalSelection 相关联

我需要获取与 IdCatPatientActivity 关联的所有 IdInternalSelection,然后循环每个 IdInternalSelection 并将其插入到不同的表中。

我没有获得多个 IdInternalSelection id。 有人可以帮我吗?

【问题讨论】:

  • 您很可能以错误的方式思考整个事情。您不应该在时间方法中编写这种逐步/循环的项目。 SQL Server 使用基于集合的方法效果更好。
  • 因为我对游标不太熟悉,所以想使用相同的 :)。感谢您的输入 :)

标签: .net sql-server cursor cursors


【解决方案1】:

您需要变量是 TABLE 类型。

declare @IdInternalSelection  table
(
    Id varchar(1000)
)

insert into @IdInternalSelection
SELECT iss.IdInternalSelection 
                            FROM HesSelection.InternalSelection iss 
                            INNER JOIN HesSelection.ExtractedLabInternalSelection2CatPatientActivity cpa ON iss.IdInternalSelection = cpa.IdInternalSelection                 
                            WHERE cpa.IdCatPatientActivity = @IdCatPatientActivity

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 2016-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多