我正在查询日期列现在我必须将参数传递给此单个查询 比如年,季,月。通过级联listbox.so如何根据参数改变此查询..
my query:
select distinct
OUTLET_NAME,
ROUND (nvl(sum(WALKIN_WITHOUT_CGROUP),0)/ COUNT(*),2)APC,
ROUND((nvl(SUM(SALES_VALUE),0)+nvl(sum(total_sales),0)-nvl(sum(net_sales),0)+nvl(sum(discount),0))/nvl(sum(BILLS_WITHOUT_CGROUP),0))ASPB,
ROUND((nvl(SUM(SALES_VALUE),0)+nvl(sum(total_sales),0)-nvl(sum(net_sales),0)+nvl(sum(discount),0))/COUNT(*),2) ASPD,
nvl(sum(BILLS_WITHOUT_CGROUP),0) Bill,
trunc(nvl(SUM(SALES_VALUE),0)+nvl(sum(total_sales),0)-nvl(sum(net_sales),0)+nvl(sum(discount),0)) Sale,
nvl(sum(WALKIN_WITHOUT_CGROUP),0) WALKINS
from OUTLET_PAYMODE_REPORT_FACT A,OUTLET_DETAILS B
WHERE A.OUTLET_ID=B.OUTLET_ID and SALES_VALUE>0
and tran_date between '01-Apr-2012' and '31-Mar-2013'
group by OUTLET_NAME
答案 0 :(得分:0)
我假设您有两个参数:parameter1
,其中包含期间的开始日期,parameter2
包含结束日期。参数可以是级联还是不级联。
您可以创建两个包含参数值的变量:
var startDate = params["parameter1"]
和enddate相同。或者,如果您仅指定开始日期(例如,2012年1月1日)和期间(月,季度或年),您可以计算结束日期并将其用作第二个变量的值。
完成后,您可以在GUI中打开数据集,并将查询作为JavaScript复制到属性绑定中。这会将整个查询重写为字符串:
query line 1
query line 2
query line 3
变为
"query line 1 "+
"query line 2 "+
"query line 3 "
然后,您可以使用您指定的变量:
"and tran_date between '" +vars["startDate"] +"' and '" +vars["endDate"] +"'"
请注意使用正确的日期格式填充变量,并确保包含正确数量的引号和空格 - '
很容易被忽略!