Foxtable(狐表)用户栏目专家坐堂 → 请教sql语句高手,这个语句怎么写?


  共有2600人关注过本帖树形打印复制链接

主题:请教sql语句高手,这个语句怎么写?

帅哥哟,离线,有人找我吗?
sloyy
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
请教sql语句高手,这个语句怎么写?  发帖心情 Post By:2015/11/25 15:12:00 [只看该作者]

假设本月为201508   上个月为201507
现在想找出这个月违约期数比上个月违约期数少的人(如图红色字体所示) ,本月没有姓名的意味着已还清欠款,也算减少.


图片点击可在新窗口打开查看此主题相关图片如下:搜狗截图20151125150658.jpg
图片点击可在新窗口打开查看
 


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/25 15:39:00 [只看该作者]

上月

 

select * f rom {表a} where 数据日期 = '201507'

 

本月

 

select * f rom {表a} where 数据日期 = '201508'

 

联合查询

 

Select * f rom 上月 a Left Join 本月 b On a.姓名=b.姓名 where b.姓名 is null Or a.违约数 > b.违约数


 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/11/25 15:41:00 [只看该作者]

SEL ECT b.*
  FROM [表A] a
  Inner join [表A] b
  on a.姓名= b.姓名
  where dateadd(month,1,(cast(a.数据日期+ '01' as date))) = cast(b.数据日期+ '01' as date)
  and a.违约期数> b.违约期数

 回到顶部
帅哥哟,离线,有人找我吗?
sloyy
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2015/11/25 23:00:00 [只看该作者]

Select * f rom 上月 a Left Join 本月 b On a.姓名=b.姓名 where b.姓名 is null Or a.违约数 > b.违约数
大红袍老师  完整的sql语句怎么写?我折腾了一天,还是得不出结果 


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/25 23:07:00 [只看该作者]

Select * f rom (select * f rom {表a} where 数据日期 = '201507') a Left Join (select * f rom {表a} where 数据日期 = '201508') b On a.姓名=b.姓名 where b.姓名 is null Or a.违约数 > b.违约数

 


 回到顶部
帅哥哟,离线,有人找我吗?
sloyy
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2015/11/25 23:22:00 [只看该作者]

奇怪 ,我就是这样写的, 结果什么都没有

复制你的sql语句上去就对,太不可思议了

 回到顶部
帅哥哟,离线,有人找我吗?
sloyy
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2015/11/26 10:20:00 [只看该作者]

找到原因了,我的sql语句包含有表达式列,所以出错,去掉表达式列,结果正确,白白折腾了一天.

非常感谢 大红袍老师 和 Hyphen 的无私帮助.

 回到顶部
帅哥哟,离线,有人找我吗?
sloyy
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2015/11/26 10:26:00 [只看该作者]

S elect 姓名,a.逾期本金+a.逾期利息+a.逾期罚息 As [逾期本息],a.贷款帐号,a.违约期数,a.数据日期,a.贷款银行 F rom (s elect * f rom {jkqk} where 数据日期 = " &val2 &" And 违约期数 >= " & val3  & ") a Left  JOIN (S elect * f rom {jkqk} where 数据日期 = " &val1 &") b on a.[贷款帐号]=b.[贷款帐号] where b.[贷款帐号] Is null Or a.违约期数 > b.违约期数 "

红色的字段出错
                        


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/26 10:36:00 [只看该作者]

a.姓名

 回到顶部
帅哥哟,离线,有人找我吗?
sloyy
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2015/11/26 14:48:00 [只看该作者]

姓名 是表达式列,从属另一个表 ,去掉 sql语句就正确,加上就出错.

 回到顶部
总数 12 1 2 下一页