Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

CrossTable Scripting

Buenos dias

Por favor su ayuda, al momento de elaborar el script me sale un error de referencia en los campos (mas de 2) que utilizo como referencia cruzada.  O la sentencia esta bn desarrollada

Ejemplo

//D3LP

Directory;

Crosstable (v1, v2, ...) LOAD 

enero,

febrero,

...

FROM

datos.qvd

(qvd);

Saludos,

David

Developer

1 Solution

Accepted Solutions
MK_QSL
MVP
MVP

CustomerBrandCountryJan FebMar Apr
AAAGermany100200133160
BBBPoland12014098100
CCCItaly100200133160
DDDFrance200600300165

Consider that you have table like above and you need to get table as below, we need to use crosstable functionality in QlikView Script...

CustomerBrandCountryMonthSales
AAAGermanyJan100
BBBPolandJan120
CCCItalyJan100
DDDFranceJan200
AAAGermanyFeb200
BBBPolandFeb140
CCCItalyFeb200
DDDFranceFeb600
AAAGermanyMar133
BBBPolandMar98
CCCItalyMar133
DDDFranceMar300
AAAGermanyApr160
BBBPolandApr100
CCCItalyApr160
DDDFranceApr165

Sales:

CrossTable(Month, Sales, 3)

LOAD Customer,

     Brand,

     Country,

     Jan,

     Feb,

     Mar,

     Apr

FROM TableName;

Here 3 is for First Three Dimensions which are  Customer, Brand and Country

If we have only two Dimensions from above three we need to use 2 instead of 3.

Hope this help.

View solution in original post

7 Replies
MK_QSL
MVP
MVP

Can you load your full script...

Crosstable should be like below...

CrossTable(Month,Sales, 2)

Load

     CustomerName,

     Country,

     Jan,

     Feb,

     ...

     ..

From TableName;

Gysbert_Wassenaar

Directory;

Crosstable (v1, v2) LOAD

'Dummy' as Dummy

enero,

febrero,

...

FROM

datos.qvd

(qvd);

Drop Field Dummy;


talk is cheap, supply exceeds demand
Not applicable
Author

No entiendo esta parte cruzado (Mes, Ventas, 2).

En el primer valor de Mes, se tiene el valor de los campos de dimension ?? si son mas dos que se hace (Yo tengo 4). El valor de ventas es el nombre de la referencia de la tabla Cruzada ??



Saludos,

David

Developer

MK_QSL
MVP
MVP

CustomerBrandCountryJan FebMar Apr
AAAGermany100200133160
BBBPoland12014098100
CCCItaly100200133160
DDDFrance200600300165

Consider that you have table like above and you need to get table as below, we need to use crosstable functionality in QlikView Script...

CustomerBrandCountryMonthSales
AAAGermanyJan100
BBBPolandJan120
CCCItalyJan100
DDDFranceJan200
AAAGermanyFeb200
BBBPolandFeb140
CCCItalyFeb200
DDDFranceFeb600
AAAGermanyMar133
BBBPolandMar98
CCCItalyMar133
DDDFranceMar300
AAAGermanyApr160
BBBPolandApr100
CCCItalyApr160
DDDFranceApr165

Sales:

CrossTable(Month, Sales, 3)

LOAD Customer,

     Brand,

     Country,

     Jan,

     Feb,

     Mar,

     Apr

FROM TableName;

Here 3 is for First Three Dimensions which are  Customer, Brand and Country

If we have only two Dimensions from above three we need to use 2 instead of 3.

Hope this help.

jaimeaguilar
Partner - Specialist II
Partner - Specialist II

Hola,

Solo para agregar a lo que ya han dicho,

la sintaxis de Crosstable toma 3 parámetros:

  • El nombre de los 2 campos nuevos que van a ser creados (En tu caso son mes y ventas)
  • El tercer parámetro indica el número de columnas empezando de izquierda a derecha que no van a ser cruzadas o transpuestas. Por eso al momento de hacer la carga de datos, debes acomodar primero los campos que no quieres que se crucen y después los que si.


En tu ejemplo, las columnas con los nombres de los meses deben colocarse hasta el final y en tu caso necesitas un campo dummy, tal como lo puso Gysbert,



saludos


Not applicable
Author

Muchas gracias a los dos. Todas las dudas quedaron aclaradas.

Saludos

David León

Developer

MK_QSL
MVP
MVP

Dear David,

If you question resolved, please close this thread by choosing correct or helpful answer.

Thanks