日期:2014-05-17  浏览次数:20492 次

求一个sql语句,大神来看看
select Number400,Cyear,Cmonth,
FeeType,MobileOpenD,FixedFee,FeeTypeName,Fee1,Fee2,Fee3,Fee4,
Consumer1,Consumer2,Consumer3,Consumer4,
case when (Cyear>=datepart(yy,MobileOpenD) and  Cmonth>=datepart(mm,MobileOpenD) and pay<FixedFee)
then FixedFee else pay end as pay
from
(
select a.Number400,b._year Cyear,b._Month Cmonth,a.FeeTypeName,a.FeeType,a.MobileOpenD, 
a.FixedFee,a.Fee1,a.Fee2,a.Fee3,a.Fee4,
b.Consumer1,b.Consumer2,b.Consumer3,b.Consumer4,
case a.FeeType
when 1 then a.Fee1*b.Consumer1+a.Fee2*b.Consumer2
when 2 then a.Fee3*b.Consumer3+a.Fee4*b.Consumer4
end as pay
from S_Manager400 a
full join S_MonthlyData b on a.Number400=b.Number400 
) t  

根据sql查询如图

400号码采购表

每个月话务表

我上面的查询400采购表和每个月的话务表
400信息表  400号码isSale是一个是否销售的状态
比如4008008827  他的抵消生效日期MobileOpenD 是7月1号  他的消费抵消是600元, 
我话务表7,8,9月份根本没有卖出去,可是我应付的值应该有个600元,
比如我要查询9月份的数据 我没有销售出去的这个号码产生的抵消600元,以及我9月份有话务的记录
这个不知道可以实现不 

不知是我只要有抵消没有销售出去的话 每个月自然都会有一条记录进入到话务表 
sql select

------解决方案--------------------
你可以将测试数据用文本形式贴出来,方便测试
------解决方案--------------------
你这样描述不理解,应该说什么查询已付、未付,累计已付,累计未付等等信息