Fórum Delphi com Oracle Sql não funciona precisando de ajuda #416101
01/05/2012
0
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
Curtir tópico
+ 0Posts
02/05/2012
Bruno Leandro
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
02/05/2012
Marcelo Augusto
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
02/05/2012
Marcelo Augusto
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
03/05/2012
Marcelo Augusto
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
Clique aqui para fazer login e interagir na Comunidade :)