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: 
Not applicable

Como hacer funcionar una Clave Principal?

Tengo dos tablas cargadas, una de ventas y otra de compras. Ambas comparte articulo, fecha, pero cada una tiene su cantidad y su precio diferenciado. Sin embargo cuando en una fecha se da mas de una venta y esxite para dicha fecha una compra repite el valor de la compra dichas veces, por lo que el monto de compras se me multiplica (se me duplican o triplican, etc, campos)
Que debo hacer para evitar esta duplicacion?

1 Solution

Accepted Solutions
Miguel_Angel_Baeyens

Hola,

Para eso he añadido en el ejemplo el campo Origen, de forma que la expresión para cantidad comprada sería:

Sum({< Origen = {'Compras'} >} Cantidad)

Y de forma análoga para las ventas.

Espero que te sirva.

Miguel

View solution in original post

3 Replies
Miguel_Angel_Baeyens

Hola,

Hay varias formas. En primer lugar, lo que yo haría es un único campo a partir de todas aquellas dimensiones comunes entre las distintas tablas. Por lo que dices, Artículo y Fecha podrían ser una clave compuesta tanto en Ventas como en Compras.

Una vez realizada la clave, concatena por ejemplo ambas tablas e identifícalas para poder analizarlas juntas o por separado. Esquemáticamente sería algo como

Compras:

LOAD DocID,

     CodArticulo,

     CodFecha,

     Importe,

     Cantidad,

     AutoNumber(CodArticulo & '$$' & CodFecha, 'Clave') AS CampoClave,

     'Compras' AS Origen

FROM Compras.qvd (qvd);

CONCATENATE (Compras)

LOAD DocID,

     CodArticulo,

     CodFecha,

     Importe,

     Cantidad,

     AutoNumber(CodArticulo & '$$' & CodFecha, 'Clave') AS CampoClave,

     'Ventas' AS Origen

FROM Ventas.qvd (qvd);

Espero que te sirva.

Miguel

Not applicable
Author

Gracias por la respuesta.
Sin embargo en tu Script no entiendfo como haria luego por ejemplo si quiero hacer un grafico combinado de barras con compras y ventas como hago para diferenciar, emn un mismo articulo, la cantidad comprada del a vendida si ambas se llaman Cantidad, y como diferencio precio de venta de precio decompra?
Lo que yo habia hecho era llamar v_cantidad y v_precio y luego c_cantidad y c_precio para diferenciar. Lo que termina sucediendo es que cuando hago esto se superponen los campos en las tablas por ejemplo:

El 15 de mayo hay yuna compra de 15 u a 30$ y dos ventas de 6 unidades a 60 pesos

Esto deberia figurar asi en tabla:

Fecha     c_cant     c_precio     v_cant     v_precio

15/5          15          30               -               -

15/5          -               -               6               60

15/5          -               -                6               60

Sin embargo el programa lo hace de la siguiente manera

Fecha     c_cant     c_precio     v_cant     v_precio

15/5          15            30               6               60

15/5          15             30                6               60

Por lo que duplica la cantidad comprada

Miguel_Angel_Baeyens

Hola,

Para eso he añadido en el ejemplo el campo Origen, de forma que la expresión para cantidad comprada sería:

Sum({< Origen = {'Compras'} >} Cantidad)

Y de forma análoga para las ventas.

Espero que te sirva.

Miguel