FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Depurar DB MS SQL
Buen día a todos, hace tiempo no ingresaba, he ido desarrollando en base a las necesidades en la compañía donde laboro y tengo ya algunos dias con este problema. Tengo una tabla en MS SQL tiene unos 120 mil registros de los cuales muchos son repetidos en la columna "A" (clave de producto) por decirlo de alguna forma, pero que tomando la columna "B" (numero almacén) lo clasificaría en numero de almacén del producto "XXXX" y en la columna "C" estaría el concepto por el cual habría que definir si se resta o se suma la cantidad que esta en una columna "D" , y por ultimo tomar la cantidad que esta en una columna "E". para pasar al siguiente registro y validar el dato de la columna "A" sea igual al anterior. si es asi, ve si la columna "B" es igual, si no se asume que es otro almacén y con esto debería totalizar la columna "C", "D" y "E" y pegar esta información en una tabla distinta. lo desarrollado hasta el momento funciona en parte pero si encuentra que la columna "B" es distinta me agrega la info en la nueva tabla. lo que necesito es que se haga algo similar a la instruccion DISTINCT de SQL para que me muestre en la columna "A" la clave del producto y en la columna "B" únicamente los almacenes 1,2,3,4, etc en los que se encuentra (sin repetirse), en la columna "C" sus totales, en la "D" y "E" lo respectivo.
Espero haber sido claro en la explicación del problema. voy a buscar el código ya que lo he reescrito tantas veces que ya lo elimine, por suerte lo guarde en un txt para copiarlo.
Gracias por su atención, apoyo y comentarios. |
#2
|
||||
|
||||
Buenas, primero que nada, lo que planteas es un poco confuso , sobre todo llamando a los campos como a,b,c,d (al menos para mi, quiza sea un poco corto ) y creo que podrias aportarnos algun dato mas (no llego a entender que es exactamente lo que quieres hacer, hablando en terminos practicos)
Pasando al problema en si, lo ideal seria que la tabla esté de antemano ordenada para recorrerla como lo precisas Código:
CAMPO_A | CAMPO_B | etc... --------------------------- 1 1 1 1 1 2 2 1 2 4 3 2 3 1 3 1
Si el proceso lo tenes que realizar para todos los productos, entonces yo optaria por hacer un query:
Luego recorres ese dataset para totalizar, y vuelves a lanzar el mismo query pero con otro codigo de producto, me explico? Que es exactamente lo que precisas, saber cuanto de cada producto hay en cada almacen? Un saludo! Última edición por AgustinOrtu fecha: 13-10-2014 a las 07:03:47. Razón: me equivoque en una cosa del codigo :D |
#3
|
|||
|
|||
AgustinOrtu
Gracias, por tu respuesta, no se me ocurrió manejar el While como lo expones. Voy a modificar el código para probar de esta forma. Exactamente que se requiere hacer? es precisamente la idea que tienes o captaste. Contabilizar los productos por almacén, solo que el mismo producto aparece en varios almacenes y estos almacenes aparecen varias veces. Variando así sus totales de existencia. La pretensión totalizar la existencia de producto ó articulo pero por almacén (Campo, columna "B") sin perder de vista lo principal, el producto o articulo que estamos trabajando. Dado que el código que tengo y expuse lo único que hace es "traspasar" la información de una tabla a otra. Y lo que necesito es un procedimiento que haga el "filtro" por almacenes totalizando la existencia por producto en base a conceptos "entradas" , "salidas", "devoluciones" , "cancelaciones", "compras", etc. Gracias por el aporte y ya comentare si funciono como se desea. Hasta pronto |
#4
|
||||
|
||||
Perfecto bueno mira, te comento como lo trabajo yo en mis sistemas para que sea menos engorroso.
La idea es que la tabla que tenés ahora sea para consultar como fue variando el stock de los productos en los diversos almacenes, sería un registro o historial de movimientos. Luego yo manejo otra tabla en la cual se tiene la cantidad del stock actual, por cada almacén. En mi caso opte por la mala idea (más difícil de extender, pero más cómoda y eficiente de trabajar) de definir una tabla más o menos así Código:
IdProducto int, Stock1 int, StockMin1 int, StockN int, StockMinN int Bueno, siguiendo con mi diseño, cada ves que se realiza uno de los movimientos de stock, no solo doy de alta el registro en la tabla de movimientos, sino que también en ese momento actualizo el stock del producto correspondiente, esto lo hago con un query similar a esto
También es posible usar triggers, pero a mi particularmente no me gusta la programación en BD, prefiero hacer todo en mi código delphi De esta forma tenés tu stock al día sin preocuparte de correr un proceso grande. Si aún así fuera necesario el proceso que describís entonces asumiendo que tengas que recorrer todos los productos podes hacer algo parecido a esto
No estoy seguro pero esta última solución, mucho más fácil de leer y encarar, sea menos eficiente por andar lanzando queries a lo loco, podrías modificarla un poco para que te retorne en ves de solo el stock de un almacén el de todos en un array Entonces todo se reduce a
Saludos! |
#5
|
|||
|
|||
AgustinOrtu
Gracias de nueva cuenta por esta aportación. Estoy trabajando con los cambios que inicialmente propusiste, complementando la información. Los totales se requieren obtener por cada producto, y por cada almacén ya que los almacenes del 1-99 son para diferentes rubros. Almacén 1 producto de linea, almacén 2 Almacén-foráneo, almacén 5 refacciones, almacén 20 inservibles, almacén 80 irrecuperables y así con todos los almacenes y como es el mismo producto se necesita totalizar por cada uno en los diferentes almacenes. Enseguida coloco como seria la información en la tabla (campos o columnas principales). Esto porque se requiere así? Debido a que estoy programando una aplicación que accede a esta información y muestra la existencia del producto con sus características y existencias en los almacenes donde exista asignado. Gracias y hasta pronto |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Depurar una CGI en Delphi 5 | bitbow | Internet | 0 | 10-03-2011 16:55:42 |
Depurar una dll en TurboDelphi | yarones | Varios | 3 | 18-01-2008 12:22:29 |
Depurar Clases | jplj | Varios | 2 | 13-11-2007 17:39:59 |
No depurar ciertas units | marto | Varios | 3 | 22-06-2004 18:09:38 |
depurar libreria | agonzalez | Varios | 6 | 16-03-2004 19:03:08 |
|