我有一个表中的日期列表(数据类型=文本),我想使用查询作为表单过滤器的一部分从组合框中以升序下拉。我还想在列表中添加一个“全部”,以便用户可以使用组合框重置过滤器。
我可以按顺序获取日期,也可以合并“全部”选项,但不能同时使用两者。有人可以帮忙吗?
这将按顺序获取日期:
SELECT TESTTABLE.DateTest
FROM TESTTABLE
ORDER BY CDate(TESTTABLE.DateTest);
这会进行并集,但是日期的排列顺序会错误:
SELECT TESTTABLE.DateTest
FROM TESTTABLE
UNION SELECT "(All)" AS BOGUS FROM TESTTABLE
我很想将两个选项组合成一个查询,以将“全部”放在查询的返回值列表的顶部,并按日期排列
答案 0 :(得分:1)
使用格式功能对存储为文本的日期进行排序。 (All)
将在顶部,因为特殊字符的值最低,然后是字母
Select * from (
SELECT DISTINCT TESTTABLE.DateTest
FROM TESTTABLE
UNION SELECT "(All)" AS BOGUS FROM TESTTABLE)
order by Format(DateTest,'yyyy-mm-dd') asc
答案 1 :(得分:0)
您可以在下面使用dummay列尝试订购
select * from
(
SELECT TESTTABLE.DateTest,2 as ord
FROM TESTTABLE
UNION SELECT "(All)" AS BOGUS,1 FROM TESTTABLE
)A order by ord,CDate(DateTest)