以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  代码求助,为何时间限定无效?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=8046)

--  作者:唐尸三摆手
--  发布时间:2010/9/1 9:45:00
--  代码求助,为何时间限定无效?

Dim b As New SQLCrossTableBuilder("a","aec00000")
b.c
b.AddTable("aec00000","itemcode","aaa00000","code") \'添加统计表
b.AddTable("aec00000","id_contract","eba00000","id_contract") \'添加统计表
b.AddTable("aaa00000","classcode","aam00000","classcode") \'添加统计 表
b.AddCols("aam00000","classcode") \'指定列来源
b.AddCols("aam00000","classname") \'指定列来源
b.AddCols("eba00000","sellunit") \'指定列来源
b.HGroups.AddDef("classcode","分类码") \'添加水平分组
b.HGroups.AddDef("classname","分类名称") \'添加水平分组
b.VGroups.AddDef("requiredate",DateGroupEnum.none) \'添加垂直分组
b.Totals.AddDef("plannum") \'添加数量列用于统计
b.VerticalTotal=True
b.filter="[requiredate] >= getdate() and [centercode]=\'0100\' and [sellunit]<>\'0702\' and [classcode] like \'102%\' or [classcode] = \'112000\'" \'包装车间分析代码
b.Decimals=0 \'不保留小数
b.Build(True) \'生成统计表

 

 

 

以上代码为何执行后,红色部分的时间过滤条件不起作用,连2009年的数据都显示出来了,其他条件均成立,请问是何故?

[此贴子已经被作者于2010-9-1 9:45:39编辑过]

--  作者:狐狸爸爸
--  发布时间:2010/9/1 9:55:00
--  
我不懂SQL的函数,帮你顶
--  作者:唐尸三摆手
--  发布时间:2010/9/1 15:32:00
--  

高手在吗


--  作者:baoxyang
--  发布时间:2010/9/1 17:29:00
--  

="[requiredate] >= convert(varchar(10),getdate(),121)

 

需要这样才行吧。楼主试试。


--  作者:唐尸三摆手
--  发布时间:2010/9/1 17:43:00
--  

奇怪,后面加了括号就可以了,真搞不懂

b.filter="[requiredate] >= getdate() and [centercode]=\'0100\' and [sellunit]<>\'0702\' and ([classcode] like \'102%\' or [classcode] = \'112000\')"

 

忘了告诉了,四楼的代码我明白,但是requiredate的格式与getdate()格式一样的。


--  作者:狐狸爸爸
--  发布时间:2010/9/1 17:56:00
--  
可能SQL SERVER的语法就要求函数带括号吧,其实这样较为严谨一点