读书人

子查询的值多于一个的有关问题

发布时间: 2012-01-21 21:31:43 作者: rapoo

子查询的值多于一个的问题
这样写有什么毛病啊 怎么改啊
select

,c21.a0190

,SUM(select case when right(c105.gz_ym,2)= '01 ' then isnull(c10511,0) else 0 end from c105,c21 where c105.a0188=c21.a0188 and c105.gz_ym=c21.gz_ym) as '一月 '

from c21,deptcode,c105
where c21.dept_id=deptcode.dept_id

SUM函数 是不是不能这么用?去了SUM出现子查询的值多于一个


[解决办法]
这样?

select
c21.a0190,
SUM(case when right(c105.gz_ym,2)= '01 ' then isnull(c10511,0) else 0 end) as '一月 '
from c21
join c105
on c105.a0188=c21.a0188 and c105.gz_ym=c21.gz_ym
join deptcode
on c21.dept_id=deptcode.dept_id
group by c21.a0190
[解决办法]
select

,c21.a0190

,SUM(case when right(c105.gz_ym,2)= '01 ' then isnull(c10511,0) else 0 end ) as '一月 '

from c21,deptcode,c105
where c21.dept_id=deptcode.dept_id and c105.a0188=c21.a0188 and c105.gz_ym=c21.gz_ym

读书人网 >SQL Server

热点推荐