一个查询的问题!!!!!!!!!!!!!!!!!!

qiudong_5210 2011-09-05 02:41:37

--我想做个缴费历史记录的统计
--我想查询六月份到期但没有付费的记录该怎么写这条sql语句啊?
--记录Id 用户名 付费开始日期 付费结束日期
LogId UserName StartDate EndDate
1 zhangsan 2011-01-01 00:00:00 2011-03-31 00:00:00
2 zhangsan 2011-04-01 00:00:00 2011-06-30 00:00:00
3 zhangsan 2011-08-01 00:00:00 2011-09-30 00:00:00
4 lisi 2011-02-08 00:00:00 2011-06-06 00:00:00
5 lisi 2011-08-01 00:00:00 2011-10-31 00:00:00
6 zhaoliu 2011-05-01 00:00:00 2011-06-30 00:00:00
...全文
99 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
-晴天 2011-09-05
  • 打赏
  • 举报
回复
只要传'2011-06'就行了:
select * from tb a where convert(varchar(7),enddate,120)='2011-06' and
not exists(select 1 from tb where username=a.username and convert(varchar(7),startDate,120)='2011-06' and startDate>a.enddate)
qiudong_5210 2011-09-05
  • 打赏
  • 举报
回复
传入‘2011-06-01 00:00:00’得到以下结果

2 zhangsan 2011-04-01 00:00:00 2011-06-30 00:00:00
4 lisi 2011-02-08 00:00:00 2011-06-06 00:00:00
6 zhaoliu 2011-05-01 00:00:00 2011-06-30 00:00:00


因为这些是在2011-06月到期,但是在本月没有继续付费的用户
--小F-- 2011-09-05
  • 打赏
  • 举报
回复
直接说需要的结果 然后再说明是怎么来的
qiudong_5210 2011-09-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 qianjin036a 的回复:]
问题是,你的那些数据里,6月到期,没有付费,但却在8月又付了费,又有一个到期时间,恐怕没有哪个地方可以把前面一段的欠费赊上,却开始付下一段时间的费的.应该都是把前一段时间的欠费结清,才能开始下一时间的预付费吧.
[/Quote]

你可以这样理解,QQ会员的付费记录
你可以选择成为会员或者在会员到期后不再续费会员,但是记录是有的,
你六月份会员到期,但是因为有事没有及时续费,在九月份才继续使用会员,在这个期间,你不需要还清欠费,只不过是等级降了而已。
但是你却是在六月份到期,但是六月没有及时续费的人员之中,属于到期未续费的。

我这里统计的只是个大概的数字,不要求太精确,像月底到期第二个月第一天付费的就不计算了

-晴天 2011-09-05
  • 打赏
  • 举报
回复
问题是,你的那些数据里,6月到期,没有付费,但却在8月又付了费,又有一个到期时间,恐怕没有哪个地方可以把前面一段的欠费赊上,却开始付下一段时间的费的.应该都是把前一段时间的欠费结清,才能开始下一时间的预付费吧.

qiudong_5210 2011-09-05
  • 打赏
  • 举报
回复
算了,不计算那种月底到期第二个月第一天付费的了,
就查询那些当月到期,但是当月没有继续付费的用户
qiudong_5210 2011-09-05
  • 打赏
  • 举报
回复
我的计算方法是按月计算的
即如果传入的时间是‘2011-06-01 00:00:00’
那么就查询出六月1号到29号到期,但没有在六月继续续费的用户
或者是6月30号到期,没有在七月1号付费的用户
rinall 2011-09-05
  • 打赏
  • 举报
回复
是的话 就是直接查额结束时间是六月份的就可以了
rinall 2011-09-05
  • 打赏
  • 举报
回复
如果缴费了会更新付费开始时间和付费结束时间吧?

CalvinR 2011-09-05
  • 打赏
  • 举报
回复
来打酱油的
学习观摩中……
qiudong_5210 2011-09-05
  • 打赏
  • 举报
回复
时间是传进去的‘2011-06-01 00:00:00’ 这种情况
qiudong_5210 2011-09-05
  • 打赏
  • 举报
回复
付费结束日期就是到期的时间


没付费的就是在付费结束日期的月份内没有再次付费的
或者是在付费的第二天没有续费的(这个只针对到期时间是那个月的最后一天的情况)
AcHerat 2011-09-05
  • 打赏
  • 举报
回复
没付费怎么个表示法。。。
chuanzhang5687 2011-09-05
  • 打赏
  • 举报
回复
怎么判断六月份到期?

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧