Cómo configurar una fecha de inicio y fecha de finalización dinámicas utilizando el Editor avanzado en PowerQuery
Inicialmente creé un código SQL con una StartDate
y EndDate
estáticas en PowerQuery
(ver código a continuación).
Script SQL con valores estáticos:
Select extract(month from STAGE_DATE) as Calendar_Month, count(id) as
number_of_int
from stage_table
where type_code LIKE 'X%'
and stage_date >= to_date('01022021','ddmmyyyy') ---StartDate
and stage_date <= to_date('30042021','ddmmyyyy') ---EndDate
group by extract(month from STAGE_DATE)
Sin embargo, quiero que los usuarios puedan cambiar la StartDate y EndDate. Después de investigar un poco, encontré una función llamada Editor Avanzado que se puede utilizar. Creé una tabla llamada Parámetros (Insertar –> Tabla):
Columna 1: Parámetro Columna 2: Valor
StartDate 01022021
EndDate 30042021
Luego, usé “Editor Avanzado” para definir la tabla de Parámetros. Comencé nombrando StartDate de la siguiente manera:
(ParameterName as text) =>
let
ParamSource = Excel.CurrentWorkbook(){[Name="Parameters"]}[Content],
ParamRow = Table.SelectRows(ParamSource, each ([Parameter] = ParameterName)),
Value=
if Table.IsEmpty(ParamRow)=true
then null
else Record.Field(ParamRow{0},"Value")
in
Value
Luego, en el SQL inicial, ingresé fnGetParameter(‘StartDate’) (ver abajo), pero sigo recibiendo un mensaje de error que dice: “DataSource.Error: Oracle: ORA-00904: “FNGETPARAMETER”: identificador no válido”.
Select extract(month from STAGE_DATE) as Calendar_Month, count(id) as
number_of_int
from stage_table
where type_code LIKE 'X%'
and stage_date >= to_date(fnGetParameter('StartDate'),'ddmmyyyy')
and stage_date <= to_date(fnGetParameter('EndDate'),'ddmmyyyy')
group by extract(month from STAGE_DATE)
Gracias de antemano por revisar esto.
davy.ai
Solución:
El mensaje de error “DataSource.Error: Oracle: ORA-00904: “FNGETPARAMETER”: identificador no válido” sugiere que la función
fnGetParameter
no es reconocida por la base de datos Oracle.Para solucionar este problema, debes asegurarte de que la función esté correctamente definida y accesible dentro de la base de datos Oracle. Aquí te presentamos los pasos que puedes seguir:
Esta función toma un nombre de parámetro como entrada y devuelve el valor del parámetro correspondiente de la tabla
PARAMETERS
.Actualiza tu consulta SQL para llamar a esta función en lugar de la función PowerQuery. Por ejemplo:
Esta consulta llama a la función
GET_PARAMETER
en lugar de la función PowerQuery, pasando el nombre del parámetro como argumento. La función devuelve el valor del parámetro de la tablaPARAMETERS
, que luego se utiliza en la funciónto_date
para convertir el valor a una fecha.Siguiendo estos pasos, deberías poder utilizar parámetros dinámicos en tu consulta SQL en PowerQuery.