Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-04-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Descontar pedazos de un todo

Hola a todos.
Tengo un problema que no he podido solucionar, os lo explico:
Tengo una pieza.
Esta pieza tiene una medida determinada.
A esta pieza se le cortan (pedazos de diferentes medidas), los cuales se convierten en piezas mas pequeñas.
Una vez cortados los pedazos, en ciertas ocasiones pueden sobrar otros pedazos mas pequeños que son desechados.
El problema:
Hacer desgloses de la pieza no es un grave problema, seria un asunto de sacarle el área e ir descontando los pedazos, asi se sabría lo que queda de esta.
El asunto es que no es una pieza, son muchas, ejemplo:
Piezas: 5
Area de las piezas: 27.5 m2
Pieza a descontar #1: area: 2.25 m2
Pieza a descontar #2: area: 0.90 m2
Area restante de las piezas: 24.35 m2

Bueno, se ve facil hasta ahi.
Empece con 5 piezas y un area de 27.5.
Ahora tengo 4.427 piezas.

La pregunta es cuanto me queda de una pieza en particular?.
Como saber que me queda de la pieza 1- 1.25 m2 etc.

Espero explicarme bien.
Se os ocurre como puedo identificar la cantidad restante por pieza?
Cualquier opción sera bienvenida.
Gracias
Saludos
Responder Con Cita
  #2  
Antiguo 06-04-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola amigo Carlos, no se si he comprendido bien el problema, pero creo que puede servirte esto:

1. Estructuración de la base de datos:

Necesitamos al menos dos tablas, por simplicidad las denominaré Piezas y Cortes.
La idea es que Una pieza tenga varios cortes y un corte pertenece a una única pieza.
En la tabla Piezas tendríamos algo como:
ID-Pieza Area Nombre
1 50 A
2 20 B
3 10 C

En la tabla Cortes algo como esto:
ID-Corte ID-Pieza Tamaño
1 1 20
2 1 10
3 2 15
4 3 10

2. Como aplicar la consulta:
Por lo visto necesitas saber cuanto de las piezas han quedado disponible, esto se podría conseguir con algo como esto:
Código SQL [-]
select Pieza.Nombre, Area, Disponible
from Piezas, Cortes
where (Area - (select sum(Tamaño) from Piezas where Piezas.ID-Pieza = Cortes.ID-Pieza) > 0) as Disponible
order by Piezas.Nombre

Es muy posiblemente que el SQL necesite un poco de pulida, lo hice muy de memoria... en estos momentos estoy que me caigo de sueño y mi cerebro está un poco OFF.

Al menos creo que se entiende la idea.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 06-04-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Gracias amigo.
He pensado en algo similar, el asunto es que tendría que generar una tabla adicional con una numeración de cada pieza, eso es lo que me ha detenido un poco ya que en la practica es un poco complicado hacerlo.
De todos modos tu idea es extraordinaria, me parece muy interesante, la voy a analizar.
Cuando descanses si se te ocurre algo mas, te lo agradeceré.
Saludos
Responder Con Cita
  #4  
Antiguo 07-04-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Buen amigo, me he quedado pensando en lo que haz dicho:

Cita:
Empezado por Caral Ver Mensaje
(...)el asunto es que tendría que generar una tabla adicional con una numeración de cada pieza(...)
Y me he sentido un tanto intranquilo. Me confunde que digas "con una numeración de cada pieza" y "tabla adicional". ¿Entonces todavía no tienes una tabla en donde llevas el registro de las piezas? Porque si la tienes creería que bastaría con agregarle los campos necesarios para cumplir con este propósito.

He pensado en otro enfoque, tal vez, un tanto más complicado... para evitar esa consulta anidada.

La idea es que a medida que se ingresan los cortes ir actualizando la suma total en la tabla piezas. Por tanto la tabla Piezas ahora tendría otro campo más, digamos que lo llamamos AreaCorte. Es decir:
ID-Pieza Nombre ... Area AreaCorte
1 Pieza A 20 12
2 Pieza B 30 15
...

De modo que "relajamos" la consulta:
Código SQL [-]
select ID-Pieza, Nombre, ... Area, (Area - AreaCorte) as Disponible
from Piezas
where ....

Si estás con Access y tienes una buena cantidad de piezas y cortes... creería que tener consultas anidadas de dicha manera puede bajar un poco la perfomance.

Bueno es otro modo de ver el problema.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #5  
Antiguo 07-04-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Gracias amigo por tus recomendaciones, estoy analizando todo.
Gracias.
Saludos
Responder Con Cita
  #6  
Antiguo 07-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.561
Poder: 25
egostar Va camino a la fama
No se si estoy entendiendo bien el asunto que te hace escribir este hilo amigo, pero pienso que esto mas bien es asunto de algoritmos en lugar de bases de datos.

Aquí te dejo un documento que espero te ayude.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
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
Ayuda con sql para descontar articulo. Petolansa Varios 15 16-11-2007 00:04:27
Mas "pedazos" de informacion de Delphi! Epachsoft Noticias 0 16-02-2007 08:23:14
¿Estamos haciendo pedazos nuestro idioma? Héctor Randolph Debates 8 12-01-2005 17:21:58


La franja horaria es GMT +2. Ahora son las 00:06:57.


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