Pegar utimo Registro no banco
Olá pessoal,
Gente to com um pepino dos grandes aqui para resolver,
Vejam me pediram para montar uma tabela de cadastro, porem estes cadastros devem ser divididos em 2 grupos, em sistema de árvore, tipo binário conforme a imagem abaixo
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.grupoeagle.com.br/tela_exemplo.png&key=f0a74fecd5eb69e481091fb746fb39c757db23aa61691d28365b003f61fee6c5" alt="Imagem Postada" />
Ai preciso epgar e dar um select na tabela para pegar o utimo registro cadastrado dependendo do lado que foi feito oc adastro, ai fiz assim:
SELECT MAX(IdConsultor) as IdConsultor FROM cad_consultor WHERE IdPatrocinador = 1 and PERNACADASTRO = 'E'
Porem a consulta não esta trazendo o ID que realmente eu preciso como referencia para cadastrar o novo cliente, deixa eu ver se consigo explicar usando a imagem acima
com esta imagem consigo demonstrar bem um erro que esotu tendo, iamginemos que o ID:1 primeiro do topo resolva cadastrar alguém do seu lado esquerdo, este deveria cair abaixo do ID:8 (8.5.5) e sua identificação ficaria (12.1.8) 12 seu ID, 1 seu patrocinador, 8 seu Ascendente, para tentar pegar o ID do ascendente que estou tentando utilizar o MAX mas ou eu estou fazendo a consulta de forma errada ou não é com MAX que se faz ou ainda eu precise colocar no banco alguma informação para que a consulta entenda que quando eu peço para pegar o MAX ID do banco de um determinado lado é somente a parte de fora daquela linha e não contar a parte de dentro da linha
tipo parte de fora seria os cadastros (Lado esquerdo: 2.1.1, 4.1.2, 5.2.4, 8.5.5 - Lado Direito: 3.1.1, 6.3.3)
Lado de dentro (chamada de perna interna) (Lado Esquerdo: 7.2.2 - Lado Direito: 9.3.3, 10.9.3, 11.3.10)
O que corre então é isto quando eu dou o Select Max.. ele pega tudo que for referente aquele lado que contenha a identificação 'D' OU 'E' Esquerda ou Direita.
Pessoal agguem sabe como resolver este caso? Desde já agradeço a todos
Discussão (6)
Carregando comentários...