SQL中怎样对datetime数据类型按日期分组 10
现在是这样:日期金额2008-05-2122:15:56.577930.6999982008-05-2207:02:23.437330.828999-----------...
现在是这样:
日期 金额
2008-05-21 22:15:56.577 930.699998
2008-05-22 07:02:23.437 330.828999
---------------------------------------
想要显示:
日期 金额
2008-05-21 930.699998
2008-05-22 330.828999
create procedure test1
@fristday datetime,
@lastday datetime
as
select recmaster.recdtm as '日期',sum(recdetail.recprc) as '金额'
from recmaster,recdetail
where recmaster.billno=recdetail.billno and recmaster.depoid=recdetail.depoid
group by CONVERT(varchar(12) , recmaster.recdtm, 111 ),recdetail.recprc
having recmaster.recdtm>=@fristday and recmaster.recdtm<=@lastday order by recmaster.recdtm
go
这个是我写的,错误在上面
消息 8121,级别 16,状态 1,过程 test1,第 5 行
HAVING 子句中的列 'recmaster.recDtm' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
消息 8121,级别 16,状态 1,过程 test1,第 5 行
HAVING 子句中的列 'recmaster.recDtm' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
请指教 展开
日期 金额
2008-05-21 22:15:56.577 930.699998
2008-05-22 07:02:23.437 330.828999
---------------------------------------
想要显示:
日期 金额
2008-05-21 930.699998
2008-05-22 330.828999
create procedure test1
@fristday datetime,
@lastday datetime
as
select recmaster.recdtm as '日期',sum(recdetail.recprc) as '金额'
from recmaster,recdetail
where recmaster.billno=recdetail.billno and recmaster.depoid=recdetail.depoid
group by CONVERT(varchar(12) , recmaster.recdtm, 111 ),recdetail.recprc
having recmaster.recdtm>=@fristday and recmaster.recdtm<=@lastday order by recmaster.recdtm
go
这个是我写的,错误在上面
消息 8121,级别 16,状态 1,过程 test1,第 5 行
HAVING 子句中的列 'recmaster.recDtm' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
消息 8121,级别 16,状态 1,过程 test1,第 5 行
HAVING 子句中的列 'recmaster.recDtm' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
请指教 展开
展开全部
select left(日期,charindex(日期,' ')) as '日期',sum(金额) as '金额' form 表 group by left(日期,charindex(日期,' '))
看你分组是用来干什么的 如果是要同组时间的金额相加 那 sum(金额) as '金额' 部分不变
如果是其他造作改sum为:
求组中最大: max
求组中最小: min
求行数:cout
看你分组是用来干什么的 如果是要同组时间的金额相加 那 sum(金额) as '金额' 部分不变
如果是其他造作改sum为:
求组中最大: max
求组中最小: min
求行数:cout
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
转换后如果日期列是datetime的话这样写:
select cast(convert(varchar(10),日期,120) as datetime),金额 from 表
转换后如果日期列为varchar型的话这样写:
select convert(varchar(10),日期,120),金额 from 表
以上,希望对你有所帮助!
select cast(convert(varchar(10),日期,120) as datetime),金额 from 表
转换后如果日期列为varchar型的话这样写:
select convert(varchar(10),日期,120),金额 from 表
以上,希望对你有所帮助!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
正确答案应该是这样的:
select 日期,金额
from 表名
group by convert(varchar(10),日期,126),金额
select 日期,金额
from 表名
group by convert(varchar(10),日期,126),金额
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select CONVERT(varchar(12) , 日期, 23 ) as '日期',金额 from table1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询