以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  日期的季度和周的selec语句如何写(OK)  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=41977)

--  作者:zpx_2012
--  发布时间:2013/10/31 17:26:00
--  日期的季度和周的selec语句如何写(OK)
如下:可以用Select 语句查询日期的年,月作为它用,
SELECT Year(日期) AS 年,  Month(日期) AS 月, SUM(数量) AS 数量 FROM {订单}

如果还想得到日期是一年中的第几季和第几周用什么函数?比如:
SELECT Year(日期) AS 年 XXX(日期) AS 季, XXX (日期) AS 周,SUM(数量) AS 数量 FROM {订单}
上面红色XXX部份分别要用哪两个函数,

用 SELECT Year(日期) AS 年DatePart(\'q\', 日期) AS 季度, DatePart(\'ww\',  " & c & " ) AS 周 FROM {订单}
c 是一个日期变量,总提示DatePart指定的第1个参数无效

谢谢!

[此贴子已经被作者于2013-10-31 17:54:13编辑过]

--  作者:Bin
--  发布时间:2013/10/31 17:33:00
--  
没有现成的函数,你可以根据 Month(日期) 来实现

如果是MSSQL 可以

  SELECT Year(日期) AS 年,case   
  when  month(日期)  < 4    then   \'第一季度\'   
  when  month(日期)  BETWEEN 4 and 6   then   \'第二季度\'   
  when  month(日期)  BETWEEN 7 and 9   then   \'第二季度\'    
  when  month(日期)  BETWEEN 10 and 12   then   \'第二季度\'    
  end   as   季度

--  作者:狐狸爸爸
--  发布时间:2013/10/31 17:35:00
--  

你不能直接将SQL语句写成:

 

SELECT Year(日期) AS 年, DatePart(\'q\', 日期) AS 季度, DatePart(\'ww\', " & c & " ) AS 周 FROM {订单}

 

这是代码,你的用代码解决:

 

Dim s As string  = "SELECT Year(日期) AS 年, DatePart(\'q\', 日期) AS 季度, DatePart(\'ww\', " & c & " ) AS 周 FROM {订单}"

 

然后将s赋值给需要调用这个seect语句的立方,例如:

 

cmd.CommandText  = s

 

或:

 

Tables("xxx").Fill(s, ....)

 

[此贴子已经被作者于2013-10-31 17:37:49编辑过]

--  作者:Bin
--  发布时间:2013/10/31 17:37:00
--  
DatePart  好东东都忘记拿出来用了 图片点击可在新窗口打开查看
--  作者:逛逛
--  发布时间:2013/10/31 17:38:00
--  

把 q 的单引号去掉


--  作者:zpx_2012
--  发布时间:2013/10/31 17:44:00
--  
SQL语句的写法应该是正确的,用msgbox可以显示出来。

[此贴子已经被作者于2013-11-1 0:16:43编辑过]

--  作者:逛逛
--  发布时间:2013/10/31 17:47:00
--  

你还是没有把单引号去掉

 

DatePart(Interval, date)

 

的Interval是不需要单引号的

[此贴子已经被作者于2013-10-31 17:48:15编辑过]

--  作者:狐狸爸爸
--  发布时间:2013/10/31 17:49:00
--  

你这个图片对于解决你的问题没有任何意义。

既然怀疑合成的sql语句有问题,你就用output.show将很成的sql语句显示到命令窗口,然后复制这个sql语句到sql执行窗口执行调试分析,或者贴出你合成的语句给大家看。

 

另注意如果你的是sql server,q,w这些是不需要单引号的。


--  作者:zpx_2012
--  发布时间:2013/10/31 17:51:00
--  
谢谢大家,逛逛说的很正确,把单收号去掉就可以了。谢谢 逛逛!