簡體   English   中英

子查詢每行返回一個以上的值

[英]Subquery returning more than one value per row

我有一個返回多行的子查詢,這正是我需要的。 但我收到錯誤:

子查詢返回了 1 個以上的值。 當子查詢跟隨 =、!=、<、<=、>、>= 或當子查詢用作表達式時,這是不允許的。

我的查詢如下所示:

SELECT 
    number, 
    req.dv_cat_item, 
    req.dv_stage, 
    req.dv_state req_state, 
    u.dv_u_lob, 
    u.dv_location,
    req.opened_at,
    req.closed_at, 
    req.dv_closed_by,
    (SELECT name FROM sc_item_option vars
     OUTER APPLY STRING_SPLIT(vars.value, ',') s
     LEFT JOIN cmdb_ci_server AS c ON c.sys_id =s.value
     JOIN sc_item_option_mtom mtom ON vars.sys_id = mtom.sc_item_option
     JOIN sc_req_item req ON mtom.request_item = req.sys_id 
     WHERE mtom.request_item = req.sys_id 
       AND item_option_new = '915ec43a13ff520012c73482e144b002') --as [Server]
FROM 
    sc_req_item req
JOIN 
    sys_user u ON u.sys_id = req.u_requested_for
               AND req.dv_cat_item = 'system id request' 
               AND req.sys_id IN ('a0880b7c1bb1c41c5c68b8061a4bcb99', '6a066d111bb14cd0fafc1f861a4bcb2b')

我嘗試使用 where exists 並嘗試將該子查詢移至最后 4 行下方。 到目前為止沒有運氣。

任何人都可以幫忙嗎?

謝謝

為此,您必須確保子查詢返回一個值。 如果它返回多個 sql 將不知道選擇哪一個作為結果我相信這是你應該做的:

SELECT number
    ,req.dv_cat_item
    ,req.dv_stage
    ,req.dv_state req_state
    ,u.dv_u_lob
    ,u.dv_location
    ,req.opened_at
    ,req.closed_at
    ,req.dv_closed_by
    ,b.name
FROM sc_req_item req
JOIN sys_user u ON u.sys_id = req.u_requested_for
    AND req.dv_cat_item = 'system id request'
    AND req.sys_id IN (
        'a0880b7c1bb1c41c5c68b8061a4bcb99'
        ,'6a066d111bb14cd0fafc1f861a4bcb2b'
        )
INNER JOIN (
    SELECT name
        ,request_item
    FROM sc_item_option vars
    OUTER APPLY STRING_SPLIT(vars.value, ',') s
    LEFT JOIN cmdb_ci_server AS c ON c.sys_id = s.value
    JOIN sc_item_option_mtom mtom ON vars.sys_id = mtom.sc_item_option
    JOIN sc_req_item req ON mtom.request_item = req.sys_id
    WHERE item_option_new = '915ec43a13ff520012c73482e144b002'
    ) b ON b.request_item = req.sys_id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM