日期:2014-05-18  浏览次数:20527 次

跪求数据库高手解决一个问题
唉!碰到一个郁闷的问题,想不出如何解决。
我现在建立一个视图,视图中的字段来自于其他一些表和视图。
该视图是和钱相关的,比如说某个月,有多少钱,对应的字段名称分别是money、thisyear、thismonth。
money是来自于其他一些表或视图中相关字段的和。
结果就遇到问题了。
有的时候,在其他一些表中,当月可能没有记录,于是在这个视图中money值为NULL。
但我需要的是,如果有记录,则当月的money等于相关记录的汇总;如果没有记录,当月的money值等于上个月的money值。
唉!有没有高手能帮我想想,怎么写sql语句能解决啊?


------解决方案--------------------
如果没有记录,当月的money值等于上个月的money值

这个比较麻烦,如果当月没记录,显示为0的好就好办了.

使用左连接left join , 然后对没有记录的使用isnull(val,0)

正如楼上所说,如果你给出数据和结果就好办了.
------解决方案--------------------
在Create View语句中,对 sum(money)时,就需要用 isnull处理
create view v1
....
select 
isnull(sum(money),0)
..


当然,你要是针对视图中的null处理时,也可以不改视图,而在对视图数据进行统计时再加 isnull处理.

这样就没有问题了.