【发布时间】:2020-10-29 14:14:10
【问题描述】:
the problem is shown in this screenshot
SELECT DISTINCT
w.sourcekeyid1,
i.instrumentdesc,
i.serialnum,
i.instrumentmodelid,
i.instrumenttype,
i.workareadepartmentid,
i.testingdepartmentid,
spi.scheduleplanid,
spi.scheduleplanitemdesc,
spi.schedulerule,
v.testmethod,
v1.specid,
v2.certificationinterval,
v3.grcperiod,
(SELECT keyid1 + '|' + keyid2
FROM workitemitem
WHERE workitemid + '|' + workitemversionid = v.testmethod
AND sdcid = 'ParamList') parameterlist,
p.displayunits,
(SELECT s.limittypesequence
FROM specparamlimits s
WHERE s.paramlistid = ((SELECT keyid1 FROM workitemitem
WHERE workitemid + '|' + workitemversionid = v.testmethod
AND sdcid = 'ParamList'))) limitlevel
FROM
workorder w
LEFT JOIN
instrument i ON w.sourcekeyid1 = i.instrumentid
LEFT JOIN
sysuser u ON w.completedby = u.sysuserid
LEFT JOIN
scheduleplanitem spi ON spi.linksdcid = 'Instrument'
AND spi.linkkeyid1 = i.instrumentid
LEFT OUTER JOIN
vw_testmethod v ON v.scheduleplanitemid = spi.scheduleplanitemid
LEFT OUTER JOIN
vw_specid v1 ON v1.scheduleplanitemid = spi.scheduleplanitemid
LEFT OUTER JOIN
vw_certificationinterval v2 ON v2.scheduleplanitemid = spi.scheduleplanitemid
LEFT OUTER JOIN
vw_grcperiod v3 ON v3.scheduleplanitemid = spi.scheduleplanitemid,
paramlistitem p
INNER JOIN
workitemitem w1 ON p.paramlistid = w1.keyid1
ORDER BY
w.sourcekeyid1
我在这里使用视图。我想使用视图的这一列在表中查找其他可能,但出现错误
子查询返回超过 1 个值。当子查询跟随 =、!=、、>= 或子查询用作表达式时,这是不允许的。
如何修改?
【问题讨论】:
-
是否可以在这部分查询
where s.paramlistid= ((select keyid1中使用IN而不是=?
标签: sql sql-server view