Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-05-2006
[fer21unmsm] fer21unmsm is offline
Miembro Premium
 
Registrado: dic 2005
Ubicación: Lima
Posts: 627
Poder: 21
fer21unmsm Va por buen camino
Cita:
Empezado por Caro
Hola a todos

No tengo idea de como armar esta consulta, tengo lo siguiente en mi tabla

Código:
codigo        nivel
01               1
0101            2
010101         3
010102         3 
01010201      4
01010202      4 
01010203      4  
0102            2
lo que yo quiero obtener es lo siguiente, que serian los ultimos niveles

Código:
codigo        nivel
010101         3
01010201      4
01010202      4 
01010203      4  
0102            2
espero se entienda, la tabla tiene mas campos como descripcion y otros, les agradecere un monton si me pudieran ayudar, gracias por adelantado y que tengan un bonito dia.

Estoy utilizando como Base de Datos ACCESS
Hola Caro hace tiempo que no agarro SQL así es que quizá sólo te puedo ayudar con la lógica, puedes utilizar una consulta recursiva o un procedimiento almacenado(usando cursores) con un while en la cual:

primero haces una consulta para capturar todos los registro cuyo nivel sea el mayor (en este caso 4), luego haces un while o recursividad, comparando todos los registros del nivel anterior en (en este caso 3), verificas si los codigos de dichos registros son subcadenas de los códigos de los resultados generados en la primera consulta, si hay algún registro que no sea una subcadena entonces lo agregas a tu tabla de resultados final, y luego vuelves a hacer lo mismo pero para el nivel 2 , así sucesivamente hasta llegar al 1.

Bueno si puedo trataré de hacerlo y te mando un ejemplo más tarde ¿vale?

Saludos.
Responder Con Cita
  #2  
Antiguo 19-05-2006
Avatar de waltergomez
waltergomez waltergomez is offline
Miembro
 
Registrado: may 2006
Posts: 202
Poder: 21
waltergomez Va por buen camino
Si entiendo bien lo que necesitas son los ultimos items facturables dado que los anteriores son agrupaciones (linea, marca, etc). Es una forma similar a las usadas en las cuentas contables.
Creo que la forma que perseguis no es muy comoda y seguramente te complicará mas de un proceso.
Debrias agregar un campo para definir si es o no facturable. Porque la cantidad de niveles es variable para distintos productos,
y siendo variable es complicado identificar el ultimo dado que por ej. el nivel 3 puede ser el ultimo nivel para un grupo y el 4 para otro y el 2 para otro, etc.
Agregando un campo que te indique si es o no facturable lo solucionas facilmente, ademas te sirve para hacer busquedas rapidas.

Salu2,
Responder Con Cita
  #3  
Antiguo 25-05-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 22
david duarte Va por buen camino
Cómo lo quieres hacer, por medio de una query o como???

Se me ocurre que:

Registro por registro vayas tomando la longitud y la dividas entre 2 (que es lo que estas tomando como base en los niveles) y te va a dar el numero de niveles, ese resultado lo guardas en un campo de la base de datos, que se podria llamar nivel o algo asi, y posteriormente armas tu query para que selecciones los niveles que quieras!!!!

Espero que te haya servido de algo.

Creo que todavia no entiendo del todo bien que es lo que quieres hacer

Saludos!!!!
Responder Con Cita
  #4  
Antiguo 25-05-2006
Avatar de El_TxEtXu
El_TxEtXu El_TxEtXu is offline
Registrado
 
Registrado: may 2006
Posts: 3
Poder: 0
El_TxEtXu Va por buen camino
¿Por qué no reestructura los datos?

Hooola,

¿Qué estructura de tablas tienes? ¿está todo en una sóla tabla?
Si es así a lo mejor te trae cuenta modelar otra vez esto ya que al estar hablando de categorias y subcategorias, aplicar la lógica del modelo entidad-relación puede ayudarte. ACCESS tiene una sección para definir relaciones entre tablas de forma gráfica muy intuitiva. Si lo haces así es muy sencillo sacar una categoria y su subcategorias mediante el JOIN.

Si lo tienes todo en una tabla y no tienes posibilidad de modificarlo lo único que creo que puedes hacer es currarte una consulta hiper-bestial tratando la cadena que hace de código dividiendo en subcadenas.... (...pufff, ...y que el Dr. Peter Chen te pille confesado).

Saludos

Última edición por El_TxEtXu fecha: 25-05-2006 a las 16:16:06.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ordenar por los 3 ultimos numeros Roilo SQL 14 04-09-2006 23:04:07
Los últimos cuarenta temas del ClubDelphi en formato RSS dec Noticias 8 25-12-2005 22:12:24
Obtener el resultado de una consulta zurech MySQL 3 13-07-2005 11:33:11
Niveles de Acceso/ UTECYBER Varios 5 07-10-2003 20:56:23
niveles en programas marcelofabiani Varios 1 10-05-2003 22:30:15


La franja horaria es GMT +2. Ahora son las 00:08:13.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi