Ir para conteúdo
Fórum Script Brasil
  • 0

[resolvido] Sub query retorna mais de um Valor - Como resolver!


Angelo Augusto

Pergunta

Pessoal.. O problema é o seguinte:

Te nho um select que retorna uma consulta normalmente mas foi pedido para que implentasse um campo de nome BACKLOG

que seria a quantidade de dias que uma "anomalia" esta em aberto. ai fiz uma SubQuery da seguinte forma.

(select datediff(day,r.dataronda,getdate()) from ronda r
inner join anomalia a on r.idronda = a.idronda
where a.DataRetirada is not null) as backLog
ai deu certo, mas na hora que eu implemento ela no codigo da o erro dizendo q ela retornou mais de uma valor... E eu preciso que ela retorne a quantidade de dias de cada anomalia em aberto sera que tem como?!?!?!?!... Vou postar aqui todo o select...
select a.idAnomalia as id, r.nome as nomeResidencia, n.nome as nomeNucleo,
(case when ronda.idSecaoBloqueio IS NOT NULL then s.nome else 
(case when ronda.idLocacao IS NOT NULL then l.nome else é.nome end) end)
as trechoFerrovia, a.idAnomalia,ronda.dataRonda,ronda.dataRecebido,
a.dataRetirada,a.dataProgramada,ronda.idSecaoBloqueio,ronda.nomeRonda,
a.matriculaInseriu, a.matriculaRetirou,a.km,a.monitoramento,a.tracado,
a.lado,a.trilho,a.linha,a.medida,a.extensao,tipo.idTipoAnomalia,
a.criticidade, tipo.nome as nomeTipoAnomalia,
a.obs,a.idAnomaliaOriginal, 
e.eqpto AS equipamento, 
tipoRonda.nome 
AS tipoRonda,
[b](select datediff(day,r.dataronda,getdate()) from ronda r
inner join anomalia a on r.idronda = a.idronda
where a.DataRetirada is not null) as backLog[/b]
from anomalia a 
left join equipamento e 
on a.idEquipamento = e.idEquipamento 
inner join ronda on a.idRonda = ronda.idRonda 
left join tipoRonda on ronda.idTipoRonda = tipoRonda.idTipoRonda 
inner join tipoAnomalia tipo on a.idTipoAnomalia = tipo.idtipoAnomalia 
left join locacao l on ronda.idLocacao = l.idLocacao 
left join entreHouse é on ronda.idEntreHouse = é.idEntreHouse 
left join SecaoBloqueio s on ronda.idSecaoBloqueio = s.idSecaoBloqueio 
left join nucleo n on s.idNucleo = n.idNucleo inner join residencia 
AS r ON (n.idResidencia = r.idResidencia 
OR l.idResidencia = r.idResidencia OR é.idResidencia = r.idResidencia) 
where (s.ativa=1 OR l.ativa=1 OR é.ativa=1) 
and (ronda.idSecaoBloqueio in (SELECT s.idsecaobloqueio FROM 
((ferrovia AS f INNER JOIN corredor AS c ON f.idFerrovia=c.idFerrovia) 
INNER JOIN residencia AS r ON c.idCorredor=r.idCorredor) 
INNER JOIN nucleo as n on r.idResidencia = n.idResidencia 
INNER JOIN secaoBloqueio AS s ON n.idNucleo=s.idNucleo 
where f.idFerrovia = 1 and c.idCorredor = 9  ) OR ronda.idLocacao in 
(SELECT l.idLocacao FROM ((ferrovia AS f INNER JOIN corredor AS c 
ON f.idFerrovia=c.idFerrovia) INNER JOIN residencia AS r 
ON c.idCorredor=r.idCorredor) INNER JOIN locacao as l 
on r.idResidencia = l.idResidencia where f.idFerrovia = 1 
and c.idCorredor = 9  ) OR ronda.idEntreHouse in 
(SELECT é.idEntreHouse FROM ((ferrovia AS f INNER JOIN corredor AS c
ON f.idFerrovia=c.idFerrovia) INNER JOIN residencia AS r 
ON c.idCorredor=r.idCorredor) INNER JOIN entreHouse as é 
on r.idResidencia = é.idResidencia where f.idFerrovia = 1 
and c.idCorredor = 9  )) and  idAnomaliaOriginal = 0 and 
(ronda.dataRonda >= '12/10/2007 00:00:00' and  ronda.dataRonda <= '01/15/2008 00:00:00' 
and (ronda.dataRonda <= '01/15/2008 00:00:00' OR a.dataRetirada is NULL))order by dataRonda

A todos o meu muito obrigado

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...