Delphi com Oracle Sql não funciona precisando de ajuda
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)
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
Curtidas 0
Respostas
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)
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
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)
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
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)
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
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)
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