首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果列表中有一个位置,则检索信息

如果列表中有一个位置,则检索信息
EN

Stack Overflow用户
提问于 2022-07-30 13:22:39
回答 1查看 66关注 0票数 -1

我有一个任务表链接到一个任务列表表。此外,我有一个链接到任务表的位置表。我希望使用@EMPID变量将整个任务列表与用户A关联起来。条件:

  • 我应该将位于AA位置的任务关联起来。假设同一列表中还有另一个位置,我必须跳过任务列表中的非AA位置的行,然后转到同一列表中的下一行。
  • 假设列表中有一个用户不是A,跳过整个列表并转到下一个列表。

我是用一个有光标的过程写的。我需要游标跳过不符合条件的行和任务,最后分配任务列表。任务表:

任务列表表:

位置表:

预期成果:

这是我的代码:

代码语言:javascript
复制
CREATE PROCEDURE assign
(
    @usrid int
)    
AS
    DECLARE @empid int
    DECLARE @tklid int
    DECLARE @check int
    DECLARE @cnt int
                     
    DECLARE C1 CURSOR LOCAL FOR
        SELECT tkl_ID
        FROM tasklist
        INNER JOIN lv_task ON tsk_tasklistid = tkl_id 
        INNER JOIN lv_location ON tsk_location = location_code
            WHERE location_code = a tkl_id ) x ON tkl_ID = x.TKLID
        WHERE tkl_locationcode = a
         
    OPEN c_tasklist
    FETCH c_tasklist INTO @tklid
    WHILE @@fetch_status <> -1
    BEGIN        
        UPDATE task SET
            tsk_user = @empid
        WHERE tsk_user IS NULL 
        AND tsk_id IN (SELECT tsk id FROM task WHERE tsk_location = 'AA'
    END

我还没有走到正确的方向,我很感谢你的指导,谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-07-30 18:33:54

您根本不需要光标:

UPDATE task SET tsk_user = 'A' WHERE tsk_location = 'AA' AND tsk_user = ''

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73175979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档