Permite obtener un producto cartesiano entre dos tablas virtuales, es decir, dados dos tablas virtuales retorna otra tabla virtual donde cada fila contiene la unión de la columnas de la primera y la segunda.

1 vtable.product

Añade registros a una tabla virtual.

<vtable.product
    group-columns='group-columns'
    left-columns='left-columns'
    right-columns='right-columns'
    auto-sort='auto-sort'
>
    <var1 /> !
    <var2 /> !
</vtable.product>

Remarks

Los registros de la primera tabla virtual deben estar ordenadas como mininmo por las columnas especificadas en ls atributos group-columns y left-columns.

Example

Producto cartesiano de las columnas region, product de la primera tabla virtual con la columna date de la segunda tabla virtual.

Copy
<xsql-script name='vtable_product'>
    <body>

       <vtable name='v1_fact'>
          <column name='region' type='char' />
          <column name='product' type='char' />
          <column name='sales' type='decimal' />
          <column name='date' type='date' />
       </vtable>

       <vtable.insert name='v1_fact'>
          <matrix date-format='dd-MM-yyyy'>
             {"USA ","NIKE ", "12", "01-01-2012" }
             {"USA ","PUMA ", "20", "03-01-2012"}
             {"USA ","PUMA ", "50", "07-01-2012"}
             {"CAN ","REEBOK ", "15", "05-01-2012"}
             {"MEX ","REEBOK ", "15", "02-01-2012"}
          </matrix>
       </vtable.insert>

       <vtable name='v2_dim'>
          <column name='date' type='date' />
       </vtable>
       <vtable.insert name='v2_dim'>
          <matrix date-format='dd-MM-yyyy'>
             { "01-01-2012" }
             { "02-01-2012" }
             { "03-01-2012" }
             { "04-01-2012" }
             { "05-01-2012" }
             { "06-01-2012" }
             { "07-01-2012" }
             { "08-01-2012" }
             { "09-01-2012" }
             { "10-01-2012" }
             { "11-01-2012" }
             { "12-01-2012" }
             { "13-01-2012" }
             { "14-01-2012" }
             { "15-01-2012" }
          </matrix>
       </vtable.insert>

       <set name='v3'>
          <vtable.product group-columns='region, product' left-columns='date' right-columns='date'>
             <v1_fact />
             <v2_dim />
          </vtable.product>
       </set>

       <println><v1_fact/></println>
       <!--
        Result:

       +------+-------+-------+----------+
       |region|product|sales  |date      |
       |char  |char   |decimal|date      |
       +------+-------+-------+----------+
       |USA   |NIKE   |     12|01-01-2012|
       |USA   |PUMA   |     20|03-01-2012|
       |USA   |PUMA   |     50|07-01-2012|
       |CAN   |REEBOK |     15|05-01-2012|
       |MEX   |REEBOK |     15|02-01-2012|
       +------+-------+-------+----------+
       -->
       <println><v2_dim/></println>
       <!--
        Result:

       +----------+
       |date      |
       |date      |
       +----------+
       |01-01-2012|
       |02-01-2012|
       |03-01-2012|
       |04-01-2012|
       |05-01-2012|
       |06-01-2012|
       |07-01-2012|
       |08-01-2012|
       |09-01-2012|
       |10-01-2012|
       |11-01-2012|
       |12-01-2012|
       |13-01-2012|
       |14-01-2012|
       |15-01-2012|
       +----------+
       -->
       <println><v3/></println>
       <!--
        Result:
       +------+-------+-------+----------+
       |region|product|sales  |date      |
       |char  |char   |decimal|date      |
       +------+-------+-------+----------+
       |USA   |PUMA   |       |01-01-2012|
       |USA   |PUMA   |       |02-01-2012|
       |USA   |PUMA   |     20|03-01-2012|
       |USA   |PUMA   |       |04-01-2012|
       |USA   |PUMA   |       |05-01-2012|
       |USA   |PUMA   |       |06-01-2012|
       |USA   |PUMA   |     50|07-01-2012|
       |USA   |PUMA   |       |08-01-2012|
       |USA   |PUMA   |       |09-01-2012|
       |USA   |PUMA   |       |10-01-2012|
       |USA   |PUMA   |       |11-01-2012|
       |USA   |PUMA   |       |12-01-2012|
       |USA   |PUMA   |       |13-01-2012|
       |USA   |PUMA   |       |14-01-2012|
       |USA   |PUMA   |       |15-01-2012|
       |CAN   |REEBOK |       |01-01-2012|
       |CAN   |REEBOK |       |02-01-2012|
       |CAN   |REEBOK |       |03-01-2012|
       |CAN   |REEBOK |       |04-01-2012|
       |CAN   |REEBOK |     15|05-01-2012|
       |CAN   |REEBOK |       |06-01-2012|
       |CAN   |REEBOK |       |07-01-2012|
       |CAN   |REEBOK |       |08-01-2012|
       |CAN   |REEBOK |       |09-01-2012|
       |CAN   |REEBOK |       |10-01-2012|
       |CAN   |REEBOK |       |11-01-2012|
       |CAN   |REEBOK |       |12-01-2012|
       |CAN   |REEBOK |       |13-01-2012|
       |CAN   |REEBOK |       |14-01-2012|
       |CAN   |REEBOK |       |15-01-2012|
       |MEX   |REEBOK |       |01-01-2012|
       |MEX   |REEBOK |     15|02-01-2012|
       |MEX   |REEBOK |       |03-01-2012|
       |MEX   |REEBOK |       |04-01-2012|
       |MEX   |REEBOK |       |05-01-2012|
       |MEX   |REEBOK |       |06-01-2012|
       |MEX   |REEBOK |       |07-01-2012|
       |MEX   |REEBOK |       |08-01-2012|
       |MEX   |REEBOK |       |09-01-2012|
       |MEX   |REEBOK |       |10-01-2012|
       |MEX   |REEBOK |       |11-01-2012|
       |MEX   |REEBOK |       |12-01-2012|
       |MEX   |REEBOK |       |13-01-2012|
       |MEX   |REEBOK |       |14-01-2012|
       |MEX   |REEBOK |       |15-01-2012|
       +------+-------+-------+----------+
       -->
    </body>
</xsql-script>