原帖由 [bold][underline]jockey[/underline][/bold] 于 2007-11-30 13:12 发表 [url=http://bbs.]
" border="0" />[/url]
感谢两位!
我发现个问题:
select 名称,编号, [三个月以内]=sum(case when datediff(month,时间,getdate())
select 名称,编号, [三个月以内]=sum(case when datediff(month,时间,getdate())<=3 then 金额 else 0 end) from Tb group by 名称
就要出错!
而去掉 编号
可以正常,也就是group by 只允许 一个字段
就拿这个例子作为我开始进入sql server版块学习的标记点吧。
我只会acc,但是感觉在sql语句上和sql server类似。
对于以下这种情况
select 名称,编号, [三个月以内]=sum(case when datediff(month,时间,getdate())<=3 then 金额 else 0 end) from Tb group by 名称
就要出错!
而去掉 编号
可以正常,也就是group by 只允许 一个字段
可以采用以下方式来解决
select 名称,编号, [三个月以内]=sum(case when datediff(month,时间,getdate())<=3 then 金额 else 0 end) from Tb group by 名称,编号
但是上面这种方法可能会发现不能去除重复记录
那么可以采用如下方式来测试
select 名称,min(编号), [三个月以内]=sum(case when datediff(month,时间,getdate())<=3 then 金额 else 0 end) from Tb group by 名称
这种写法是针对acc的,对于sql server不知道是否适用
向楼上各位高手学习,年底初步掌握sql server