我正在使用SQL-SERVER 2005。
我在图表中可以看到两张桌子,CellularUsers和CellularPayments。当规则很少时,我需要让需要收费的用户:
alt text http://img256.imageshack.us/img256/1946/63468037.png
预览图表click here
我现在怎么做,但对我来说看起来不对
select cu.userID,cu.userCellularNumber from CellularUsers cu
left join CellularPayments cp
on cu.userID=cp.userID
where cu.isPaymentRecurring=1
and isActivated=1
and cp.paymentID in (select max(paymentID) from CellularPayments group by userID)
提前致谢
答案 0 :(得分:1)
如果我正确地遵循你的逻辑,那么将以下AND语句添加到where子句应该这样做:
and dateadd( dd
,case cp.PaymentSum
when 8 then 0
when 18 then 7
else [AppropriateDefaultValue]
end
,CellularPayments.date) > getdate()
(我也将它作为内部联接。)