Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Estimados, buenas noches.
Estimados, espero en esta oportunidad poder contar con sus acertadas apreciaciones, hoy me encuentro en un rollo que por mas que le doy vueltas no logro encontrar la solucion.
* hace poco se me solicito adicionar a mi aplicativo la cual ya tenia VENTAS / MERCADO / RENTABILIDAD; una nueva hoja para el manejo y comparación de los objetivos de ventas anuales. teniendo como propósito poder monitorear los alcances de las ventas reales (Cantidad e Importes) contra los objetivos.
para ello mi arquitectura de entidades en QV es: Tal como muestro la nueva tabla objetivos tiene llaves que podria relacionar con algunas tablas de mi arquitectura pero que al hacerlo cuando lo hago por vededores puedo filtrar datos de objetivos pero no puedo llegar hasta las ventas reales, pues cuando selecciono vendedor me sale el total de ventas y objetivos, pero cuando voy por zona, marca los datos de ventas reales no se mueven.
ahora si relaciono por articulo me sucede todo lo contrario, puedo navegar por las ventas reales pero no por los objetivos.
favor estimados, aguien podria brindarme algun consejo u apreciacion de como salir de este rollo, si por ahi tienen un modelo que pueda utilizar de base se los agradecería mucho.
de antemano agradezco ya todas sus atenciones.
Hola Carlos:
Tienes que rediseñar el modelo de datos, sigue estas instrucciones
1) Haz un LEFT JOIN de Artículos con Marca y Linea
2) Haz un LEFT JOIN de Clientes con Vendedores y Zonas
... en este momento tienes Facturación que se habla con dos tablas y todo funciona igual
3) Haz un LEFT JOIN de Facturación con Artículos y elimina la tabla Artículos
4) Haz un LEFT JOIN de Facturación con Clientes y elimina la tabla Clientes
... ahora tu tabla Facturación tiene todos las dimensiones y todo funciona igual
5) Añade el campo Origen con valor F a la tabla Facturación
6) Cambia los campos AnioVenta y MesVenta a Anio y Mes
... tendrás que ajustar los gráficos que usaban esos campos para que todo funcione igual
7) Añade el campo Origen con valor O a la tabla Objetivos
😎 Cambia los campos AnioObjetivo y MesObjetivo a Anio y Mes
9) El IdArticulo se ha de llamar CodArticulo
10) El NombreArticulo se ha de llamar Descripción
11) Haz un LEFT JOIN de Objetivos con Marca
12) Haz un LEFT JOIN de Objetivos con Vendedores y Zonas
... ya tienes la tabla Objetivos preparada
13) Haz un CONCATENATE de la tabla Objetivos sobre la tabla FACTURACION y eliminas la tabla Objetivos
14) Elimina las tablas Marca y Linea
15) Elimina las tablas Vendedores y Zonas
... Ahora tienes una sola tabla en tu modelo de datos con más campos y más registros. Cualquier análisis funcionará sin problemas, cuando busques ventas filtra Origen = F y cuando busques objetivos filtra Origen = O
Espero haberte ayudado.
Saludos
Joaquín
Hola Carlos:
Tienes que rediseñar el modelo de datos, sigue estas instrucciones
1) Haz un LEFT JOIN de Artículos con Marca y Linea
2) Haz un LEFT JOIN de Clientes con Vendedores y Zonas
... en este momento tienes Facturación que se habla con dos tablas y todo funciona igual
3) Haz un LEFT JOIN de Facturación con Artículos y elimina la tabla Artículos
4) Haz un LEFT JOIN de Facturación con Clientes y elimina la tabla Clientes
... ahora tu tabla Facturación tiene todos las dimensiones y todo funciona igual
5) Añade el campo Origen con valor F a la tabla Facturación
6) Cambia los campos AnioVenta y MesVenta a Anio y Mes
... tendrás que ajustar los gráficos que usaban esos campos para que todo funcione igual
7) Añade el campo Origen con valor O a la tabla Objetivos
😎 Cambia los campos AnioObjetivo y MesObjetivo a Anio y Mes
9) El IdArticulo se ha de llamar CodArticulo
10) El NombreArticulo se ha de llamar Descripción
11) Haz un LEFT JOIN de Objetivos con Marca
12) Haz un LEFT JOIN de Objetivos con Vendedores y Zonas
... ya tienes la tabla Objetivos preparada
13) Haz un CONCATENATE de la tabla Objetivos sobre la tabla FACTURACION y eliminas la tabla Objetivos
14) Elimina las tablas Marca y Linea
15) Elimina las tablas Vendedores y Zonas
... Ahora tienes una sola tabla en tu modelo de datos con más campos y más registros. Cualquier análisis funcionará sin problemas, cuando busques ventas filtra Origen = F y cuando busques objetivos filtra Origen = O
Espero haberte ayudado.
Saludos
Joaquín
Joaquin, muy buen día.
Estimado, muy agradecido por tus consejos, solo para que me quede claro unas consultas:
1.-mi arquitectura de datos solo quedaría en una sola tabla ?
2.-El Left Join lo propria hacer desde mis Datamart
3.- Cuando hago el Left Join es cuando debo de borrar las tablas orígenes (Favor si no fuese mucha molestia agradecería me puedas brindar algún ejemplo)
4.-Como manejaría mis tablas cuando empiece a trabajar con compras ? ahora mi aplicativo inicio con Ventas pero continuara con compras quien compartirá seguramente algunas tablas como la de artículos, marcas, etc.
quedo al atento.
Atte. Carlos
Hola Carlos:
1) Afirmativo.
2) El Left Join lo puedes hacer cuando quieras, pero por tus requerimientos parece más apropiado después del LOAD de cada tabla de hechos.
3) Lo habitual es borrar las tablas después del JOIN pero algunas las necesitas para hacer el join con Objetivos (más adelante con Compras) ... si haces el borrado al final tampoco pasa nada
4) El tratamiento de Compras sería parecido a Objetivos, primero cargas los hechos después añades las dimensiones con JOIN's y luego borras las tablas auxiliares. Recuerda poner el valor C en el campo origen
Te quedaría una sola tabla con Facturación, Objetivos y Compras; el campo origen te sirve para identificar la información de cada registro.
Saludos
Joaquín
Joaquin, nuevamente muchas gracias por tus aclaraciones, solo una ultima consulta, lo propuesto seria la unica alternativa ? la consulta va porque te explico la arquitectura que arme.
Recarga --> Extraigo la informacion select a mi BD
Transformacion --> Armo mi estructura como claves primarias y renombramiento de mis campos
Datamart --> Centralizo mi arquitectura
Aplicacion --> Leo mi Datamart para elaboracion y diseño de aplicativo.
en revision de los procesos hacer left join y terminar en una sola tabla como que esta muy laborioso, adicionalmente que me preocupa la reutilizacion de la data ya cargada, dado que se elaboraran otros aplicativos QVD que consumiran informacion ya cargada.
si no fuese mucho pedir, favor tus apreciaciones, dado que solo adicione una tabla de Objetivos.
Atte.
Carlos
Hola Carlos:
Mi propuesta es una realidad, quizá hayan otras realidades; yo no las he utilizado.
El objetivo final es dejar una sola tabla de hechos, con tantas tablas de dimensiones vinculadas es bastante probable que acabes teniendo referencias circulares en algún punto.
El modelo de datos que has pintado en tu petición entiendo que está en el paso 'Aplicación' es allí donde debes aplicar los cambios propuestos, dependiendo del diseño quizá puedas hacerlo en 'Datamart' ... debería ver la secuencia de código para afinar mi respuesta.
Saludos
Joaquín
Hola Carlos, asi como esta tu modelo, no podras hacer lo que quieres con la tablas de objectivos que presentas. Lo mejor seria armar una Star Schema, es decir, una tabla con tus valores en el medio, y las dimensiones alrededor conectada a tu tabla FACT.
Para esto necesito entender un poco mas tu modelo ya que no hay especificaciones tecnicas. Me podrias decir la cardinalidad de cada tabla?
1) Un articulo puede tener muchas marcas y codigo de lineas y viceversa? , O un articulo solo tiene una marca y linea?
2) Lo mismo para Cliente y Zonas. Un cliente esta solo en una zona o tiene muchas zonas y muchos vendedores?
Con respecto a la tabla Objectivo, Vendedor Marca y Zona es un objetivo o Vendedor es un objectivo, Marca tiene su propio objectivo y Zona su propio objectivo? Esto cambia mucho si un vendedor de una marca especifica para una zona tiene un objetivo o si son independientes.
Saludos
Juan
Joaquin, buen dia.
Estimado, muy agradecido por tus apreciaciones, bueno como te comentaba empleo un esquema de capas si se puede llamar asi, empiezo por la Carga / Transformacion / Datamart / Aplicacion.
Podría ser posible te comparta algun acceso y puedas revisar como esta en la realidad ?
Atte.
Carlos
Estimado, Juan.
Ante todo muy agradecido por la atencion a mi caso, bueno con respecto a tus consultas te puedo comentar lo sgte.
1.- El articulo, solo tiene una marca y pertenece solo a una linea de articulo
2.- El Cliente solo pertenece a una zona
3.- El Cliente solo tiene relacionado un vendedor (Cliente pertenece a cartera de vendedor)
4.- Tabla Objetivos: Los objetivos son por vendedor
5.- Un vendedor puede vender varias marcas de artículos (Específicamente 4 marcas por cada vendedor se le da como objetivo cantidades a vender por estas marcas)
6.- Un Vendedor puede tener cartera de clientes de varias zonas (Cada Vendedor maneja una cartera de clientes agrupados por zonas)
7.- Dado que en detalle de objetivos se especifican las Cantidades e importes objetivos por artículos, entonces por marca si puede haber una cantidad objetivo.
8.- A cada VENDEDOR se le brinda un objetivo Cabecera: ( Marca / Zona / Año / Mes ); Detalle: (Articulo / Cantidad / Precio)
se agradece por antemano tus apreciaciones.
Atte.
Carlos
Hola Carlos,
Aqui te hice un ejemplo de como lo haria yo con la informacion que me brindaste. Fijate en el codigo. Espero te sea de ayuda.
Saludos
Juan