Ir al contenido

Consultas avanzadas

Edalitics prioriza la facilidad de uso y la abstracción del conocimiento técnico necesario para realizar consultas en una base de datos. Sin embargo, a veces es necesario recurrir a la potencia de SQL para realizar consultas complejas. Para ello, edalitics pone a disposición de usuarios avanzados el «Modo SQL». Para acceder a este modo, debe abrir el apartado situado en la esquina superior derecha del cuadro de diálogo de definición de consulta en la configuración de un panel (1).

Al abrir este apartado, puede cambiar del “Modo EDA”, el modo edalitics predeterminado, a este “Modo SQL”, donde los usuarios avanzados podrán definir y ejecutar consultas SQL nativas contra la base de datos.

Una vez activado el conmutador “Modo SQL”, el usuario podrá definir su consulta SQL libre en el área de texto dispuesta para tal efecto (2) y especificar una de las tablas principales del modelo de datos en el que se basa la consulta. (3).

Consultas: son consultas SQL nativas gratuitas teniendo en cuenta las siguientes restricciones:

  • Las consultas deben realizarse en el mismo esquema de base de datos en el que se genera el informe. No se pueden combinar esquemas de bases de datos. Si necesita tablas de diferentes esquemas, le recomendamos generar vistas.
  • Se deben usar alias para las tablas. En otras palabras, las consultas deben definirse con la siguiente estructura de ejemplo: «select a.field1, a.field2 from table a».

Para facilitar la interacción avanzada con las consultas SQL, en la misma pantalla está disponible una ayuda (3) que nos recordará:

  • Recomendaciones generales
  • Cómo vincular los filtros del informe con nuestra consulta SQL
  • Ejemplos de uso

Una vez definida nuestra consulta SQL (2) e identificada la tabla principal, ya podemos ejecutar la consulta y utilizarla normalmente como si fuera cualquier otra consulta desde cualquier otro panel.

Las consultas SQL nativas se corresponden con edalitics y se inyectan los posibles filtros de acceso a datos que puedan existir en el modelo en el que se basa el informe.

Si desea vincular la consulta con los filtros del informe, deberá:

  • Para ello solo tienes que añadir: AND ${alias_table.columna_filtrada} en la cláusula ‘WHERE’ de la consulta donde quieres inyectar el filtro
  • Si no ha agregado ninguna cláusula WHERE, agréguela a la consulta y realice las uniones necesarias, junto con el filtro en el formato ${alias_table.column_filtered}
  • Si la tabla por la que estamos filtrando no está en la consulta, recuerda que debes agregar las cláusulas JOIN necesarias para poder vincular la tabla de filtro con tu consulta

A continuación se muestran algunos ejemplos:

  • Consulta simple:

SELECT c.customername FROM CUSTOMERS c

  • Consulta con filtros de informes vinculados:

    • Tenemos un filtro en el informe para el campo ‘ciudad’ de la tabla CLIENTES:
      • Consulta sin filtros vinculados:

        SELECT c.customername FROM CUSTOMERSc WHERE c.customername IN (‘Julia’, ‘John’)

      • Consulta con filtros vinculados:

        SELECT c.customername FROM CUSTOMERSc WHERE c.customername IN (‘Julia’, ‘john’) AND ${c.city}

  • Tenemos un filtro en el informe para el campo ‘office_id’ de la tabla OFFICES

    • Consulta sin filtros vinculados:

      SELECT e.employee_name FROM EMPLOYEE e WHERE e.employee_name IN (‘Julia’, ‘John’)

    • Consulta con filtros vinculados: SELECT e.employee_name FROM EMPLOYEE e INNER JOIN OFFICES or ON o.office_id = e.office_id WHERE e.employee_name IN (‘Julia’, ‘John’) AND ${o.office_id}