江湖急救!!!!!!!

卷泥巴重来 2013-11-14 11:30:55
SQL 代码如下!


declare @dateTime datetime
declare @startTime datetime
declare @endTime datetime
declare @wname nvarchar
set @dateTime='2013-11-13'
set @wname='www.baidu.com'
set @startTime=convert(char(4),datepart(yyyy,@dateTime))+'-01-01'
set @endTime=dateadd(yyyy,1,@startTime)
select sum(readCount) as readtotal,convert(char(7),comdatetime,20)+'-01' as payt
from WebUserFrom where webFrom=@wname and comdatetime<@endTime and comdatetime>@startTime group by convert(char(7),comdatetime,20)


错误信息如下:
消息 8120,级别 16,状态 1,第 9 行
列 'WebUserFrom.comdatetime' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
...全文
144 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
别闹腰不好 2013-11-14
  • 打赏
  • 举报
回复
楼上都是披星戴月的 好像很权威的样子。
發糞塗牆 2013-11-14
  • 打赏
  • 举报
回复
declare @wname nvarchar 改成: declare @wname nvarchar(50) 没有指定的长度默认为1,也就是至传入了一个w,所以没数据,找死我了
卷泥巴重来 2013-11-14
  • 打赏
  • 举报
回复
卷泥巴重来 2013-11-14
  • 打赏
  • 举报
回复
查询一年中每个月的点击量!
卷泥巴重来 2013-11-14
  • 打赏
  • 举报
回复
两位大哥,表里都有数据,为什么查不出来呢,表数据如下
webFrom readCount remark comdatetime

www.huanlang.com 2 来源流量统计 2013/11/8 0:00:00
qiweipump.com 1 来源流量统计 2013/11/8 0:00:00
www.baidu.com 12 来源流量统计 2013/11/9 0:00:00
www.360.cn 5 来源流量统计 2013/11/8 0:00:00
www.qiweipump.com 13 来源流量统计 2013/11/9 0:00:00
www.soso.com 2 来源流量统计 2013/11/9 0:00:00
www.baidu.com 7 来源流量统计 2013/11/10 0:00:00
www.qiweipump.com 8 来源流量统计 2013/11/10 0:00:00
www.09635.com 1 来源流量统计 2013/11/10 0:00:00
image.baidu.com 2 来源流量统计 2013/11/11 0:00:00
qiweipump.com 8 来源流量统计 2013/11/11 0:00:00
www.qiweipump.com 21 来源流量统计 2013/11/11 0:00:00
www.baidu.com 20 来源流量统计 2013/11/11 0:00:00
m.baidu.com 1 来源流量统计 2013/11/11 0:00:00
www.baidu.com 32 来源流量统计 2013/11/12 0:00:00
www.qiweipump.com 49 来源流量统计 2013/11/12 0:00:00
www.qiweipump.com 60 来源流量统计 2013/11/13 0:00:00
www.baidu.com 37 来源流量统计 2013/11/13 0:00:00
cpro.baidu.com 2 来源流量统计 2013/11/13 0:00:00
so.360.cn 1 来源流量统计 2013/11/13 0:00:00
www.so.com 4 来源流量统计 2013/11/13 0:00:00
qiweipump.com 3 来源流量统计 2013/11/13 0:00:00
zhidao.baidu.com 2 来源流量统计 2013/11/14 0:00:00
www.qiweipump.com 20 来源流量统计 2013/11/14 0:00:00
www.so.com 2 来源流量统计 2013/11/14 0:00:00
發糞塗牆 2013-11-14
  • 打赏
  • 举报
回复
declare @dateTime datetime
declare @startTime datetime
declare @endTime datetime
declare @wname nvarchar
set @dateTime='2013-11-13'
set @wname='www.baidu.com'
set @startTime=convert(char(4),datepart(yyyy,@dateTime))+'-01-01'
set @endTime=dateadd(yyyy,1,@startTime)

select sum(readCount) as readtotal,convert(char(7),comdatetime,20)+'-01' as payt 
from WebUserFrom
 where webFrom=@wname and comdatetime<@endTime and comdatetime>@startTime 
 group by convert(char(7),comdatetime,20)+'-01'
--小F-- 2013-11-14
  • 打赏
  • 举报
回复

declare @dateTime datetime
declare @startTime datetime
declare @endTime datetime
declare @wname nvarchar
set @dateTime='2013-11-13'
set @wname='www.baidu.com'
set @startTime=convert(char(4),datepart(yyyy,@dateTime))+'-01-01'
set @endTime=dateadd(yyyy,1,@startTime)
select sum(readCount) as readtotal,convert(char(7),comdatetime,20)+'-01' as payt 
from WebUserFrom where webFrom=@wname and comdatetime<@endTime and comdatetime>@startTime group by convert(char(7),comdatetime,20)+'-01'
  • 打赏
  • 举报
回复
改成这样试试:

declare @dateTime datetime
declare @startTime datetime
declare @endTime datetime
declare @wname nvarchar(100) --由于你定义的变量长度不够,会导致下面赋值时,值被截断

set @dateTime='2013-11-13'
set @wname='www.baidu.com'  --nvarchar时,值会被截断

set @startTime=convert(char(4),datepart(yyyy,@dateTime))+'-01-01'

set @endTime=dateadd(yyyy,1,@startTime)


--这里group by和select中的必须要一样
select sum(readCount) as readtotal,
       convert(char(7),comdatetime,20)+'-01' as payt 
from WebUserFrom 
where webFrom=@wname and comdatetime<@endTime and comdatetime>@startTime 
group by convert(char(7),comdatetime,20)+'-01' --这里group by和select中的必须要一样

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧