Eu bati um problema para obter dados usando o operador 'IN' de outro banco de dados. Preciso de ajuda para consertar isso por favor.
Minha consulta está assim:
SELECT i.EXTERNAL_CODE, tc.SITE_NAME, tr.TRANSACTION_DT
FROM app4_starlims_data.dbo.INVENTORY i
JOIN app4_starlims_data.dbo.VA_TUBE_COLLECTION tc
ON tc.INVENTORYID = i.INVENTORYID
JOIN app4_starlims_data.dbo.INVENTORY_TRANSACTIONS it
ON it.INVENTORYID = i.INVENTORYID
JOIN app4_starlims_data.dbo.transactions tr
ON tr.TRANSACTION_ID = it.TRANSACTION_ID
WHERE i.EXTERNAL_CODE IN
(SELECT vacutainer_ref, quality, [timestamp]
FROM dna_lab_biospecimen.dbo.blood_sample
WHERE quality LIKE '%under%'
AND [timestamp] BETWEEN '02-19-2021' AND '03-07-2021')
O erro que recebo é:
Erro de pesquisa - Erro de banco de dados do SQL Server: Apenas uma expressão pode ser especificada na lista de seleção quando a subconsulta não é introduzida com EXISTS.
Você está usando uma subconsulta com um
IN
operador dentro de umaWHERE
cláusula que permite que apenas um valor de coluna seja retornado. Ajuste aSELECT
coluna de instrução da subconsulta para ser apenas aquela que precisa ser retornada (por exemplovacutainer_ref
, ).Consulta SQL
Recursos de apoio
Regras de subconsulta
Favor desconsiderar minha pergunta:
Minha culpa foi que eu não percebi que a subconsulta retorna várias linhas.