因为“ColdFusion不支持通过INNER JOIN或OUTER JOIN子句加入” 我如何能够将这两个查询组合在一起,从中提供数据 过去2个月?
select starburst_dept_name, starburst_dept_average,MONTHLY_PAST_DATE
from cse_reports_month
where starburst_dept_name is not NULL
and YEAR(MONTHLY_PAST_DATE) = YEAR(GETDATE())
and MONTH(MONTHLY_PAST_DATE) = MONTH(GETDATE())-1
select starburst_dept_name, starburst_dept_average,MONTHLY_PAST_DATE
from cse_reports_month
where starburst_dept_name is not NULL
and YEAR(MONTHLY_PAST_DATE) = YEAR(GETDATE())
and MONTH(MONTHLY_PAST_DATE) = MONTH(GETDATE())-2
我想要一个查询来组合这两个我将如何做到这一点 在ColdFusion工作? 我想要的是比较上个月的starburst_dept_average> starburst_dept_average最近2个月前?
答案 0 :(得分:7)
为了澄清,CF仅在查询(QoQ)的查询中不支持INNER和OUTER JOIN。 cse_reports_month是查询的名称还是数据库表的名称?你使用getdate()使它听起来像是一个常规的SQL查询,而不是QoQ。
以下查询应该按照您原来的逻辑运行:
SELECT starburst_dept_name, starburst_dept_average, MONTHLY_PAST_DATE
FROM cse_reports_month
WHERE starburst_dept_name is not NULL
AND YEAR(MONTHLY_PAST_DATE) = YEAR(GETDATE())
AND (
MONTH(MONTHLY_PAST_DATE) = MONTH(GETDATE())-1 OR
MONTH(MONTHLY_PAST_DATE) = MONTH(GETDATE())-2
)
但正如所指出的那样,这对1月份不起作用。 2月 - 你需要使用一些不同的日期比较运算符。
根据您要显示的内容(以及MONTHLY_PAST_DATE数据代表的内容),以下内容可能有效(您可能需要根据具体需要修改一下):
SELECT starburst_dept_name, starburst_dept_average, MONTHLY_PAST_DATE
FROM cse_reports_month
WHERE starburst_dept_name is not NULL
AND DATEDIFF(m,MONTHLY_PAST_DATE,getdate()) IN (1,2)
答案 1 :(得分:2)
您可以使用SQL UNION语句组合这些查询结果 http://www.w3schools.com/sql/sql_union.asp