Fórum Select ... Where ... (Invalid Collum Name) #234076

24/05/2004

0

Tenho o seguinte Sql e funcina perfeitamente:

Select Veic.Veiculo_Empresa,Lin.Linha_Empresa,Hmnt.HmntDesc_Mot,Hmnt.HmntDtHrInicio,
       Hmnt.HmntDtHrFinal,Vsit.VsitDtUltPreventiva,(Select Count(Hmnt2.Veiculo_Codigo)
                                                   From HistManutencao_Hmnt Hmnt2
                                                   Where Hmnt2.Veiculo_Codigo = Hmnt.Veiculo_Codigo) As NumOcorrencias
From Veiculo_Veic Veic, Linha_Lin Lin, HistManutencao_Hmnt Hmnt, VeiculoSituacao_Vsit Vsit


Entretanto, se adicionarmos um where .. .. , irá dá erro: Invalid Columm Name:

Select Veic.Veiculo_Empresa,Lin.Linha_Empresa,Hmnt.HmntDesc_Mot,Hmnt.HmntDtHrInicio,
       Hmnt.HmntDtHrFinal,Vsit.VsitDtUltPreventiva,(Select Count(Hmnt2.Veiculo_Codigo)
                                                   From HistManutencao_Hmnt Hmnt2
                                                   Where Hmnt2.Veiculo_Codigo = Hmnt.Veiculo_Codigo) As NumOcorrencias
From Veiculo_Veic Veic, Linha_Lin Lin, HistManutencao_Hmnt Hmnt, VeiculoSituacao_Vsit Vsit
where NumOcorrencias > 4


Alguém sabe pq ele não reconhece a coluna [color=red:2c4f9252c2]NumOcorrencias[/color:2c4f9252c2] que foi gerada pelo subselect?


Rômulo Barros

Rômulo Barros

Responder

Posts

24/05/2004

Paulo_amorim

Olá

Isso ocorre porque NumOcorrencias não é um componente do seu ResultSet

Para resolver, vc tem que incluir esse NumOcorrencias:

SELECT * FROM( <todo seu select> ) WHERE NumOcorrencias > 4


Isso funcionou aqui
Até+


Responder

Gostei + 0

24/05/2004

Rômulo Barros

Obrigado, Paulo_Amorim. Testei aqui e realmente funcionou !!!

Também consegui o meu objetivo de outra forma. Segue:



SELECT 

      Veic.Veiculo_Empresa,Lin.Linha_Empresa,Hmnt.HmntDesc_Mot,Hmnt.HmntDtHrInicio,Hmnt.HmntDtHrFinal,
      Vsit.VsitDtUltPreventiva,(SELECT Count(Hmnt2.Veiculo_Codigo)
                               FROM HistManutencao_Hmnt Hmnt2
                               WHERE (Hmnt2.Veiculo_Codigo = Hmnt.Veiculo_Codigo) AND                                          

                                     (Hmnt2.HmntDtHrFinal > Vsit.VsitDtUltPreventiva)AND
                                     (Hmnt2.HmntDtHrInicio LIKE TO_DATE(´25/05/2004´,´dd/mm/yyyy´))) As NumOcorrencias,
      (SELECT Sit.SitNome
      FROM Situacao_Sit Sit, VeiculoSituacao_Vsit Vsit2
      WHERE (Sit.SitCodigo = Vsit2.SitCodigo) AND
            (Vsit2.SitCodigo = Vsit.SitCodigo)) As Situação
FROM Veiculo_Veic Veic, Linha_Lin Lin, HistManutencao_Hmnt Hmnt, VeiculoSituacao_Vsit Vsit, MovEntSai_Mov Mov,
     Equipe_Eqp Eqp
WHERE (Vsit.Veiculo_Codigo = Veic.Veiculo_Codigo)AND
      (Veic.Veiculo_Codigo = Hmnt.Veiculo_Codigo)AND
      (Hmnt.MovCodigo = Mov.MovCodigo) AND
      (Mov.EqpCodigo = Eqp.EqpCodigo) AND
      (Eqp.Linha_Codigo = Lin.Linha_Codigo) AND
      (Veic.Veiculo_Codigo = Eqp.Veiculo_Codigo) AND
      (Hmnt.HmntDtHrInicio LIKE TO_DATE(´25/05/2004´,´dd/mm/yyyy´))
ORDER BY Hmnt.HmntDtHrInicio


8) Obrigado pela ajuda !!! T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar