SUBSELECT me retornar + de 1 registro em um campo
Olá pessoal,
Estou com a seguinte dúvida, tenho um subselect que irá me retornar 1 ou + registros, sendo que o MySql irá me dar o erro 1242: Subquery returns more than 1 row, porém, precisava de agrupar esses dados em um campo, não sei se isso é possível, segue abaixo minha query. Na parte de vermelho seria onde eu precisaria consular os exames em outra tabela que existem para o pedido consultado, e retorná-los.
SELECT PD.numr_pedido,
PD.info_status,
EM.nome_empresa,
PD.data_pedido,
CO.nome_convenio,
PD.codg_dentista,
DE.nome_pessoa as nome_dentista,
DE.numr_cro,
ED.info_telefone as telefone_dentista,
PD.codg_paciente,
PA.nome_pessoa as nome_paciente,
EP.info_telefone as telefone_paciente,
PA.data_nascimento,
**(SELECT COUNT(IP.codg_exame)
FROM tb_item_pedido IP INNER JOIN tb_exame EX ON (IP.codg_exame = EX.codg_exame)
WHERE IP.numr_pedido = 601022) AS exames,**
PD.data_referencia,
PD.data_cancelamento,
PD.info_dentes,
DE.info_email,
EN.nome_tipoentrega
FROM tb_pedido PD
INNER JOIN tb_pessoa PA ON PD.codg_paciente = PA.codg_pessoa
INNER JOIN tb_pessoa DE ON PD.codg_dentista = DE.codg_pessoa
INNER JOIN tb_empresa EM ON PD.numr_unidade = EM.numr_empresa
INNER JOIN tb_convenio CO ON PD.codg_convenio = CO.codg_convenio
INNER JOIN tb_tipo_entrega EN ON PD.tipo_entrega = EN.codg_tipoentrega
INNER JOIN tb_endereco EP ON PD.codg_paciente = EP.codg_pessoa
INNER JOIN tb_endereco ED ON PD.codg_dentista = ED.codg_pessoa
WHERE PD.numr_pedido = 601022;
Se não houver uma solução na própria Query, irei tentar alguma solução na aplicação.
Obrigado.
Discussão (4)
Carregando comentários...