Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-05-2006
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
consulta sql (obtener los ultimos niveles)

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
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #2  
Antiguo 03-05-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Pues no lo entiendo.
¿Qué quiere decir con los últimos niveles?
No le encuentro ninguna lógica a esos resultados (debo estar muy espeso)

¿Porqué aparecen los tres elementos de nivel 4?
¿Porqué aparece un sólo elemento de nivel 3 (y es el 010101 y no el 010102)?
¿Y en cambio de nivel 2 aparece el 0102?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 03-05-2006
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
De verdad lo siento mucho sino se entiende tratare de explicar un poco mejor

Código:
codigo descripcion nivel 01 MATERIAL DE ESCRITORIO 1 0101 Lapiceros 2 010101 Lapiceros Azules 3 010102 Lapiceros Rojos 3


mas o menos asi se llenaran mis items, lo que me dijeron es que en algunos casos pueden llegar a mas niveles, y lo que se quiere es recuperar los que tengan el ultimo nivel que llegarian a ser los de introducción de datos, aun no se me ocurre un ejemplo para ese caso, creo que me estoy enrredando demasiado.
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #4  
Antiguo 19-05-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
ok, y el cuarto nivel que significa???

01 primer nivel material de escritorio

01 Segundo nivelLapiceros

01Lapiceros Rojos
02 Lapiceros AzulesTercer Nivel


010101
010102

010102????
y el cuarto que significa??
Cantidad, o es un identificador especial??

Saludos!!!!

Última edición por david duarte fecha: 19-05-2006 a las 17:08:40.
Responder Con Cita
  #5  
Antiguo 19-05-2006
[fer21unmsm] fer21unmsm is offline
Miembro Premium
 
Registrado: dic 2005
Ubicación: Lima
Posts: 627
Poder: 19
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
  #6  
Antiguo 19-05-2006
Avatar de waltergomez
waltergomez waltergomez is offline
Miembro
 
Registrado: may 2006
Posts: 202
Poder: 18
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
  #7  
Antiguo 25-05-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
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
  #8  
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



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 16:20:06.


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