Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Estimados:
En estos momentos tengo conectado mi tablero qlikview a una base de datos desde donde viene un maestro de clientes (el campo se llama clientes). Sin embargo, esos clientes son muchos y para poder trabajar adecuadamente cargue en mi modelo un archivo plano con un listado pequeño de clientes ya que tienen una característica especial (en el mapa de relaciones uní esta tabla con el campo cliente y la característica especial se llama customer).
Cuando comienzo a diseñar el layout de mi tablero genero un cuadro de lista con el campo customer mostrándome los clientes que necesito. Cuando genero una tabla esta funciona correctamente con el filtro customer, sin embargo los datos de cantidad muestra el total de los clientes y no filtra por customer, pero si abro la información luego si muestra el dato filtrado.
El campo que muestra la tabla es cantidad y tiene la siguiente estructura: "sum({<Carga={'Vacio'},Pies={'20','40'}>}(Cantidad * CurrYTDFlag))". Cómo puedo poder agregar esta carecteristica especial (que es un campo llamado customer) en el ratio de cantidad? Sólo se me ocurre generar la sentencia en el script del tablero pero son infinitos clientes.
Desde ya muchas gracias por su ayuda.
Felipe
Buenos Días,
Felipe,
Tendras un qvw de ejemplo donde muestres tu problema.
Saludos
Bertin:
Gracias por responderme en tan breve tiempo. Adjunto un ejemplo de lo que estoy haciendo.
Como veras la tabla funciona con el filtro de clientes, terminal y tiempo. El filtro de clientes corresponde a un curce que hice entre el campo clientes de la base de datos y un archivo plano que confeccione que es un subconjunto de la otra. La tabla muestra la información de la cantidad de ventas diaria, sin embargo el ratio de las cantidades cuando tengo los días comprimidos muestra un valor, pero cuando abro cualquier día el total de la tabla muestra el valor correcto, esto lo hace ya que en el script filtre algunos clientes dentro del campo clientes generando un nuevo campo clientefinal.
Lo raro es que cuando cambio a otro terminal o fecha y luego vuelvo a los filtros mencionados vuelve a mostrarme el error. No se como solucionar eso.
Quizás la solución es que el ratio que maneja la cantidad se haga ocupando el campo cliente de la tabla plana que subí, pero no se como hacerlo. Se editar el ratio con la estructura <{XXX='1'}> pero no como hacerlo con un campo completo (este se llama customer).
Desde ya muchas gracias,
No entiendo bien tu problema.
Pienso que el archivo de Clientes del xlsx. te esta causando problemas cuando lo asocias con la tabla de la Base de datos (Gates) mediante el campo Clientes.
Primero haz esto:
Quita esta expresión:
If (Cliente<>'DYCPMC', if(Cliente<>'FULL SECO', if(Cliente<>'VESTAS', if(Cliente<>'NESTLE', if(Cliente<>'Conguillio',Cliente))))) as ClienteFinal,
Solo deja esto en ambas tablas (Gates y ClienteDepot);
Cliente AS %Key_Cliente,
Cliente,
Luego en tu tabla de Gates pones esto;
[Gates]:
LOAD
... // Campos
FROM [Tu tabla]
WHERE Exists (Cliente,%Key_Cliente);
Para qué es esto ?
Pues para que te filtre y quite de la tabla Gates, todos los registros de aquellos Clientes que no existan en la tabla de tu catálogo.
Como comentario:
- No dejes la conexión de la base de datos. Ahi se esta viendo el USUARIO, SID, TABLA, RUTA DEL SERVIDOR y contraseña encriptada (Que se puede usar en todo caso). Baja este archivo de community, una vez que soluciones el problema.
- En tu modelo asociativo tienes una referencia Circular, eso es malo porque puede duplicar datos. Recomendación; renombra los campos en alguna de slas dos tablas y crea una llave.
Raul:
Gracias por tu respuesta. Trataré de hacer lo que me indicas.
Por otra parte, ya borre el modelo.
Gracias,
Raul:
Trate de hacer lo que me dijiste, pero no logré hacerlo funcionar ya que no supe como poner el Where Exists ya que mi tabla Gates es un documento qvd al cual se llama al final de los campos.
Para que quede más claro mi problema pongo la tabla para que se vea lo que me pasa
1. Tabla con las ventas por unidades, donde está el número del día del mes (toda la info es de un mes en particular)
Num Dia | # Unidades Actual |
---|---|
1 | 165 |
2 | 33 |
3 | 1 |
4 | 162 |
5 | 148 |
6 | 182 |
7 | 204 |
8 | 147 |
9 | 40 |
11 | 166 |
12 | 180 |
13 | 229 |
14 | 219 |
15 | 181 |
16 | 28 |
20 | 184 |
21 | 223 |
22 | 221 |
23 | 73 |
25 | 229 |
26 | 180 |
27 | 194 |
28 | 259 |
29 | 188 |
30 | 42 |
Total | 3878 |
2. Es la misma tabla que al abrir un día y que se vean los clientes me reduce el numero de unidades vendidas. Esto sólo lo hace expandiendo un día cualquiera
Num Dia | ClienteFinal | # Unidades Actual |
---|---|---|
1 | 157 | |
2 | 33 | |
4 | CMA-CGM | 93 |
COSCO | 5 | |
HAPAG LLO | 47 | |
5 | 139 | |
6 | 174 | |
7 | 186 | |
8 | 146 | |
9 | 40 | |
11 | 164 | |
12 | 171 | |
13 | 226 | |
14 | 217 | |
15 | 174 | |
16 | 28 | |
20 | 182 | |
21 | 219 | |
22 | 204 | |
23 | 73 | |
25 | 206 | |
26 | 148 | |
27 | 185 | |
28 | 252 | |
29 | 180 | |
30 | 42 | |
Total | 3691 |
El ratio de unidades es un valor editado de la siguiente manera sum({<A={'1'},B={'B','D'}>}(Cantidad * CurrYTDFlag)). Quizás el problema que tengo es que en la definición del ratio no coloco los clientes que quiero ver ya que la ser un listado no se como hacer eso.
Los clientes finales son un subconjunto que están indicados a través de un archivo excel. El campo cliente viene desde un archivo qvd que se conecta a la base de datos.
Desde ya muchas gracias,
No es la expresión dentro de tu tabla, el problema viene desde el modelo. Checa como si pones un 1 en la expresión sigue haciendo lo mismo. (El día 3 no existe igual que con la expresión)
Para que el Where exist funcione debes leer primero el catalogo (Como en la imagen) y luego la Fact Table y debes poner %Key_Cliente en ambas tablas para que se asocien y finalmente pones el where como sigue.
Ahora por ejemplo aqui hay una llave sintetica que no debería existir. Esto también y es muy probable que te este arrojando valores duplicados. Lo solucionas renombrando los campos de cualquier tabla y uniendo por cliente en todo caso.
Creo conveniente corregir esto antes. Puesto que esto puede causar problemas.