Skip to main content
Announcements
Introducing Qlik Answers: A plug-and-play, Generative AI powered RAG solution. READ ALL ABOUT IT!
cancel
Showing results for 
Search instead for 
Did you mean: 
jorge_redondo
Contributor III
Contributor III

Dos tablas de hechos y un mismo campo. Problema.

Hola Amigos.

Me encuentro con un problema a la hora de mostrar unos resultados en una tabla pivotante, los cuáles proceden de dos tablas transaccionales.

2017-03-17 17_11_26-QlikView x64 - Copia de Partner - [E__Trabajo_APP JLArenas local_jlarenas_2017.q.png

Las dimensión de TALLAS (3, 4, 5...) es el campo TALLA de la tabla transaccional OPERACIONES, donde hay registros de ENTRADAS (E) y VENTAS (V). La tabla pivotante, muestra las entradas y ventas por cada talla de cada artículo. Hasta aquí todo correcto.

Ahora, mi intención es insertar una nueva columna, la de STOCK (S) cuya expresión Sum(Stock), muestra el campo de otra tabla transaccional distinta (STOCKS), la cual tiene un campo en común pero con distinto nombre ID TALLA STOCK, y aquí se plantea el problema, que no muestra el resultado esperado.

2017-03-17 17_12_13-E__Trabajo_APP JLArenas local_jlarenas_2017.qvw.png

Quizás el modelo de datos se podría haber hecho de otra manera. Lo cierto es que, para evitar claves sintéticas he tenido que hacer tablas intermedias para resolver otros problemas, y ahora me encuentro con esto.

¿Cómo podría solucinarlo?

Gracias de antemano!!

5 Replies
hector_munoz
Specialist
Specialist

Hola Jorge,

Complicado ayudarte sin la aplicación QVW delante. No obstante quizá lo mejor sería una revisión del modelo asociativo para simplificarlo. Algunas medidas que suelen dar resultado son agrupar ciertas entidades en la misma tabla. Esto es prejuzgar pero creo que te daría buen resultado añadir el stock a la tabla de operaciones porque hay muchos campos o elementos comunes como la talla, el artículo, supongo que la tienda, puede que una fecha, etc. Aunque parece que el stock no guarda histórico y es la foto actual, luego la fecha la podrías poner a nula o como la última fecha disponible.

Al hacer esto simplificas tanto el modelo como luego la forma de diseñar; no es lo mismo un campo de talla que uno es la tabla operaciones y otro en la de stock; y sobre todo con las fechas, al tener solo una fecha ganas muchísimo teniendo un calendario canónico.

No se si te he ayudado o te he dejado peor...

Saludos,
H

jorge_redondo
Contributor III
Contributor III
Author

Hola Héctor!

Gracias por tu respuesta. Ya barajé fusionar ambas tablas de hechos en una. Como entidades no son muy similares pero podría funcionar. El caso es que tengo ya multitud de hojas y objetos e indicadores construidos y me desesperaría volver a tocarlo todo (con lo bonito que está quedando gracias a tu ayuda jeje). Presentar el stock al lado de las entradas y ventas, es interesante a nivel de detalle pero no imprescindible, ya que sí puedo integrarlo a nivel de código (sin talla ni color) .

De todas formas, adjunto el QWV por si sirve de ayuda.

Gracias!! !

jorge_redondo
Contributor III
Contributor III
Author

Entretanto, he optado por una solución fácil y, por lo que he comprobado, 100% efectiva. Inserté la columna STOCK utilizando la expresión (E)ntradas -menos- (V)entas, que daría el stock teórico, pero que en la práctica es el stock real porque la expresión (V) viene dada por

sum({$ <[ID Operación]={'C','R','T','O','I'},[Fecha Operación] = {'>=$(=Date(vFecha))<=$(=Date(vFechaMax))'} > } Cantidad)

Dónde C=compras, R=regularizaciones, T, O, I = Diferentes tipos de traspaso, recibidos, emitidos, etc... El resultado de la suma de esas operaciones, ofrece el stock real, con lo que no sería necesario dar más vueltas.

juanma21
Contributor III
Contributor III

Hola Jorge, intenta hacer una llave compuesta:

Stocks:

LOAD

  ARTICULO & COLOR as LLAVE_STOCK,

  ARTICULO as [ID Artículo2],

  TIENDA as [Stock ID Tienda],

  TALLA as [Stock ID Talla],

  COLOR as [Stock ID Color],

  STOCK as [Stock];

Operaciones:

// Entradas (COMPRAS) - Histórico

  LOAD

  ARTICULO & COLOR as LLAVE_STOCK,

  'C' as [ID Operación],

  'Entrada' as [Descripción Operación],

  'C' & YEAR(FECHA) & '-' & NUMERO as [ID Documento],

  '' as [ID Vendedor],

........

Recarga tu aplicativo con estos cambios.

jorge_redondo
Contributor III
Contributor III
Author

Muchas gracias Juan Manuel. Lo he probado y parece que funciona, valoraré si cambio el modelo u opto por la solución que tomé antes. El resultado es el mismo.