楼主: guozhiwei1988
1881 6

[问答] 如何对乱了交易顺利的进出账流水排序 [推广有奖]

  • 0关注
  • 1粉丝

博士生

26%

还不是VIP/贵宾

-

威望
0
论坛币
537 个
通用积分
3.4800
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
1171 点
帖子
122
精华
0
在线时间
341 小时
注册时间
2010-3-20
最后登录
2024-4-8

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如题,有以下数据,包含2个字段,交易金额及账户余额,无法分出先后顺序,只能根据交易金额与账户余额是否能接上来区分先后,该怎么实现呢?
交易金额   账户余额
  100             300
   300              400
   -200            100
希望排序后输出如下:
交易金额   账户余额
  100             300
  -200            100

   300              400
谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:账户余额 如何

沙发
guozhiwei1988 发表于 2014-8-3 21:30:17 |只看作者 |坛友微信交流群
排序原理比较简单 就是不知道如何通过SAS实现

使用道具

藤椅
sas9.4 发表于 2014-8-3 23:14:12 |只看作者 |坛友微信交流群
难! 万一下面有两个结果都符合情况呢?哪一条放在前面呢

使用道具

板凳
playmore 发表于 2014-8-4 09:19:47 |只看作者 |坛友微信交流群
  1. data have;
  2.         input Trans Balance;
  3. datalines;
  4. 100 300
  5. 300 400
  6. -200 100
  7. ;
  8. run;

  9. /* 得到数据集观测值序号,防止同一观测自身连接自身 */
  10. data have;
  11.         set have;
  12.         No=_N_;
  13. run;

  14. /* 进行笛卡尔积,得到所有可能组合,排除自身连接自身,以及余额加交易额不等于新余额的情形 */
  15. proc sql noprint;
  16.         create table want as
  17.                 select A.*,B.Trans as Trans_2,B.Balance as Balance_2,B.No as No_2
  18.                         from have as A,have as B
  19.                         where A.No NE B.No and A.Balance + B.Trans EQ B.Balance;
  20. quit;

  21. /* 得到最后排序结果 */
  22. data want1(keep=Trans Balance No);
  23.         set want nobs=tot;
  24.         if _N_=tot then do;
  25.                 output;
  26.                 Trans=Trans_2;
  27.                 Balance=Balance_2;
  28.                 No=No_2;
  29.                 output;
  30.         end;
  31.         else output;
  32. run;
复制代码
如ls所说,如果你的数据集比较大,可能的结果不唯一,且用笛卡尔积耗资源,有可能算不出来。

使用道具

报纸
guozhiwei1988 发表于 2014-8-4 09:59:55 |只看作者 |坛友微信交流群
sas9.4 发表于 2014-8-3 23:14
难! 万一下面有两个结果都符合情况呢?哪一条放在前面呢
数据可以分组到每天,每天的流水就少了,存在两个结果都符合的情况很少,或者说不会有

使用道具

地板
guozhiwei1988 发表于 2014-8-4 10:05:39 |只看作者 |坛友微信交流群
playmore 发表于 2014-8-4 09:19
如ls所说,如果你的数据集比较大,可能的结果不唯一,且用笛卡尔积耗资源,有可能算不出来。
数据有交易日期,按交易日期分组后每组的流水笔数不多,您的算法能在分组后进行吗?

使用道具

7
playmore 发表于 2014-8-5 08:40:45 |只看作者 |坛友微信交流群
guozhiwei1988 发表于 2014-8-4 10:05
数据有交易日期,按交易日期分组后每组的流水笔数不多,您的算法能在分组后进行吗?
当然可以
data步里该加by的地方加个by就好了
sql的话,注意匹配条件就好

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 13:52