Delphi com Oracle Sql não funciona precisando de ajuda

Delphi

01/05/2012

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

Curtidas 0

Respostas

Bruno Leandro

Bruno Leandro

01/05/2012

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)
GOSTEI 0
Marcelo Augusto

Marcelo Augusto

01/05/2012

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
GOSTEI 0
Marcelo Augusto

Marcelo Augusto

01/05/2012

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)



GOSTEI 0
Marcelo Augusto

Marcelo Augusto

01/05/2012

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.

GOSTEI 0
POSTAR