我要求从包含列的数据库中获取数据如下:
id int(11) PK
quarter varchar(45)
year int(11)
Quarter可以将每年的季度值作为String e.x. Q1
,Q2
,Q3
,Q4
。
从2011年到2014年,年份可以获得价值。
要求:
我们必须在2011,2012和2013年返回Q1,Q2,Q3和Year的季度数据并忽略其他数据。同样,用户可以输入任何范围。
请帮助建议如何构建通用SQL查询以获取结果集?
答案 0 :(得分:0)
SELECT * FROM YOURTABLE
WHERE CONCAT(CAST(YEAR AS VARCHAR), QUARTER) IN (:QuarterList)
然后以“2014Q1”,“2014Q2”......
的形式提供参数列表答案 1 :(得分:0)
由于季度的字母顺序与按时间顺序的顺序一致,您不妨使用:
SELECT *
来自你的表格
在四分之一的范围内:Q来自AND:Qto
AND year BETWEEN:Y from AND:Yto
其中Qfrom,Qto,Yfrom和Yto是用户提供的参数