Fórum Delphi com Oracle Sql não funciona precisando de ajuda #416101

01/05/2012

0

esta sql funciona se tiramos a clausula que esta em minuúsculo
são 5 tabelas pessoa cep bairro cidade estado pais a sql efetua pesquisa no cadastro de pessoa e nas outras fk
mas preciso que me retorne classsificado por pessoa, alguem pode me ajudar? o banco de dados é oracle


SELECT P.NOME,CLAS_CADASTRO,C.ID_CEP,CEP_NOME,B.BAIRRO_NOME,
CI.CIDADE_NOME,E.ESTADO_NOME,PA.PAIS_NOME FROM PESSOA P,
CEP C, BAIRRO B,CIDADE CI,ESTADO E,PAIS PA where p.clas_cadastro in(Select p.Clas_cadastro from pessoa where p.clas_cadastro = Membro)
WHERE (P.ID_CEP = C.ID_CEP)
AND (C.CEP_BAI_COD = B.BAIRRO_CODIGO)
AND (B.BAIRRO_COD_CID = CI.CIDADE_CODIGO)
AND (CI.CIDADE_COD_ESTADO = E.ESTADO_CODIGO)
AND (E.ESTADO_CODPAIS = PAIS_COD)
Marcelo Augusto

Marcelo Augusto

Responder

Posts

02/05/2012

Bruno Leandro

veja se desta forma atende

SELECT P.NOME,p.CLAS_CADASTRO,C.ID_CEP,CEP_NOME,B.BAIRRO_NOME,CI.CIDADE_NOME,E.ESTADO_NOME,PA.PAIS_NOME
FROM PESSOA P,CEP C, BAIRRO B,CIDADE CI,ESTADO E,PAIS PA
WHERE (P.ID_CEP = C.ID_CEP)
AND (C.CEP_BAI_COD = B.BAIRRO_CODIGO)
AND (B.BAIRRO_COD_CID = CI.CIDADE_CODIGO)
AND (CI.CIDADE_COD_ESTADO = E.ESTADO_CODIGO)
AND (E.ESTADO_CODPAIS = pa.PAIS_COD)
AND p.clas_cadastro in (Select x.Clas_cadastro from pessoa x where x.id_pessoa = p.id_pessoa and x.clas_cadastro = Membro)
Responder

Gostei + 0

02/05/2012

Marcelo Augusto

veja se desta forma atende

SELECT P.NOME,p.CLAS_CADASTRO,C.ID_CEP,CEP_NOME,B.BAIRRO_NOME,CI.CIDADE_NOME,E.ESTADO_NOME,PA.PAIS_NOME
FROM PESSOA P,CEP C, BAIRRO B,CIDADE CI,ESTADO E,PAIS PA
WHERE (P.ID_CEP = C.ID_CEP)
AND (C.CEP_BAI_COD = B.BAIRRO_CODIGO)
AND (B.BAIRRO_COD_CID = CI.CIDADE_CODIGO)
AND (CI.CIDADE_COD_ESTADO = E.ESTADO_CODIGO)
AND (E.ESTADO_CODPAIS = pa.PAIS_COD)
AND p.clas_cadastro in (Select x.Clas_cadastro from pessoa x where x.id_pessoa = p.id_pessoa and x.clas_cadastro = Membro)


Valeu Bruno Leandro funcionou valeu pela dica que foi exelente so tive que modificar porque a tabela pessoa não tem o idpessoa e sim codigo mas sem sua dica eu não resolveria
somente me explique por que no segundo select voce ao inves de usar o p.campos usou x.campos para os identificar
Responder

Gostei + 0

02/05/2012

Marcelo Augusto

veja se desta forma atende

SELECT P.NOME,p.CLAS_CADASTRO,C.ID_CEP,CEP_NOME,B.BAIRRO_NOME,CI.CIDADE_NOME,E.ESTADO_NOME,PA.PAIS_NOME
FROM PESSOA P,CEP C, BAIRRO B,CIDADE CI,ESTADO E,PAIS PA
WHERE (P.ID_CEP = C.ID_CEP)
AND (C.CEP_BAI_COD = B.BAIRRO_CODIGO)
AND (B.BAIRRO_COD_CID = CI.CIDADE_CODIGO)
AND (CI.CIDADE_COD_ESTADO = E.ESTADO_CODIGO)
AND (E.ESTADO_CODPAIS = pa.PAIS_COD)
AND p.clas_cadastro in (Select x.Clas_cadastro from pessoa x where x.id_pessoa = p.id_pessoa and x.clas_cadastro = Membro)


Valeu Bruno Leandro funcionou valeu pela dica que foi exelente so tive que modificar porque a tabela pessoa não tem o idpessoa e sim codigo mas sem sua dica eu não resolveria
somente me explique por que no segundo select voce ao inves de usar o p.campos usou x.campos para os identificar
funcionou bem desta forma

SELECT P.NOME,p.CLAS_CADASTRO,C.ID_CEP,CEP_NOME,B.BAIRRO_NOME,CI.CIDADE_NOME,E.ESTADO_NOME,PA.PAIS_NOME
FROM PESSOA P,CEP C, BAIRRO B,CIDADE CI,ESTADO E,PAIS PA
WHERE (P.ID_CEP = C.ID_CEP)
AND (C.CEP_BAI_COD = B.BAIRRO_CODIGO)
AND (B.BAIRRO_COD_CID = CI.CIDADE_CODIGO)
AND (CI.CIDADE_COD_ESTADO = E.ESTADO_CODIGO)
AND (E.ESTADO_CODPAIS = pa.PAIS_COD)
AND p.clas_cadastro in (Select x.Clas_cadastro from pessoa x where x.codigo = p.codigo and x.clas_cadastro = Membro)



Responder

Gostei + 0

03/05/2012

Marcelo Augusto

veja se desta forma atende

SELECT P.NOME,p.CLAS_CADASTRO,C.ID_CEP,CEP_NOME,B.BAIRRO_NOME,CI.CIDADE_NOME,E.ESTADO_NOME,PA.PAIS_NOME
FROM PESSOA P,CEP C, BAIRRO B,CIDADE CI,ESTADO E,PAIS PA
WHERE (P.ID_CEP = C.ID_CEP)
AND (C.CEP_BAI_COD = B.BAIRRO_CODIGO)
AND (B.BAIRRO_COD_CID = CI.CIDADE_CODIGO)
AND (CI.CIDADE_COD_ESTADO = E.ESTADO_CODIGO)
AND (E.ESTADO_CODPAIS = pa.PAIS_COD)
AND p.clas_cadastro in (Select x.Clas_cadastro from pessoa x where x.id_pessoa = p.id_pessoa and x.clas_cadastro = Membro)


Valeu Bruno Leandro funcionou valeu pela dica que foi exelente so tive que modificar porque a tabela pessoa não tem o idpessoa e sim codigo mas sem sua dica eu não resolveria
somente me explique por que no segundo select voce ao inves de usar o p.campos usou x.campos para os identificar
funcionou bem desta forma

SELECT P.NOME,p.CLAS_CADASTRO,C.ID_CEP,CEP_NOME,B.BAIRRO_NOME,CI.CIDADE_NOME,E.ESTADO_NOME,PA.PAIS_NOME
FROM PESSOA P,CEP C, BAIRRO B,CIDADE CI,ESTADO E,PAIS PA
WHERE (P.ID_CEP = C.ID_CEP)
AND (C.CEP_BAI_COD = B.BAIRRO_CODIGO)
AND (B.BAIRRO_COD_CID = CI.CIDADE_CODIGO)
AND (CI.CIDADE_COD_ESTADO = E.ESTADO_CODIGO)
AND (E.ESTADO_CODPAIS = pa.PAIS_COD)
AND p.clas_cadastro in (Select x.Clas_cadastro from pessoa x where x.codigo = p.codigo and x.clas_cadastro = Membro)

Pessoal Deu novo erro se puderem me ajude este codigo conforme foi passado por bruno leando funcionou perfeiamente ontem
mas hoje não funcionou mais ele ontem me trazia somente os dados em que o clas_cadastro = Membro mas agora todos os cadastros.

Responder

Gostei + 0

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

Aceitar