| 所在主题: | |
| 文件名: 样本数据.xlsx | |
| 资料下载链接地址: https://bbs.pinggu.org/a-2714593.html | |
| 附件大小: | |
|
需要给医院药品用“移动加权平均”计算
样本数据见附件(YPJXC_CLN2),示例如下图: 已经清洗完,对操作方式是“入库”的,金额是正的;对“门诊发药”、“住院发药”,金额是负的。 并计算了每个药品的累积库存数量。 现在需要计算每个药品的“累积库存成本”,计算要求: 移动加权平均单价=(本次进货的成本+原有库存的成本)/(本次进货数量+原有存货数量) 【注释】发药不影响移动平均单价 累积库存成本(如果是进货)=(本次进货的成本+原有库存的成本) 累积库存成本(如果是发货)= 移动平均单价 * 发货后的剩余库存数量 我能力有限,先用一个药品,一条条计算,大概如下: 希望大神能帮忙写一下循环(一个是单药品的后续流水的循环;一个是不同药品的循环): DATA YPJXC_CLN3; SET YPJXC_CLN2 (WHERE= (CD_IDM=12)); /*先用一个药品*/ IF _N_=1 THEN DO; FCT= ZJ; FPC= DJ; CALL SYMPUT ("NEW_FCT",ZJ); /*药品的第1条流水,肯定是进货,所以讲单价、金额提取到宏变量*/ CALL SYMPUT ("NEW_FPC",DJ); END; RUN; DATA YPJXC_CLN4; SET YPJXC_CLN3 ; /*药品的第2条流水,分为进货和发货两种可能,计算后,再更新宏变量*/ IF _N_=2 AND CZLX=1 THEN DO; FCT= &NEW_FCT + ZJ; FPC= (&NEW_FCT + ZJ )/ FN; CALL SYMPUT ("NEW_FCT",&NEW_FCT + ZJ ); CALL SYMPUT ("NEW_FPC",(&NEW_FCT + ZJ )/ FN ); END; ELSE IF _N_=2 AND CZLX=-1 THEN DO; FCT= &NEW_FPC *FN ; FPC= &NEW_FPC ; CALL SYMPUT ("NEW_FCT",&NEW_FPC *FN ); CALL SYMPUT ("NEW_FPC",&NEW_FPC ); END; RUN; DATA YPJXC_CLN5; SET YPJXC_CLN4 ; /*药品的第3条流水,重复下去*/ IF _N_=3 AND CZLX=1 THEN DO; FCT= &NEW_FCT + ZJ; FPC= (&NEW_FCT + ZJ )/ FN; CALL SYMPUT ("NEW_FCT",&NEW_FCT + ZJ ); CALL SYMPUT ("NEW_FPC",(&NEW_FCT + ZJ )/ FN ); END; ELSE IF _N_=3 AND CZLX=-1 THEN DO; FCT= &NEW_FPC *FN ; FPC= &NEW_FPC ; CALL SYMPUT ("NEW_FCT",&NEW_FPC *FN ); CALL SYMPUT ("NEW_FPC",&NEW_FPC ); END; RUN; |
|
熟悉论坛请点击新手指南
|
|
| 下载说明 | |
|
1、论坛支持迅雷和网际快车等p2p多线程软件下载,请在上面选择下载通道单击右健下载即可。 2、论坛会定期自动批量更新下载地址,所以请不要浪费时间盗链论坛资源,盗链地址会很快失效。 3、本站为非盈利性质的学术交流网站,鼓励和保护原创作品,拒绝未经版权人许可的上传行为。本站如接到版权人发出的合格侵权通知,将积极的采取必要措施;同时,本站也将在技术手段和能力范围内,履行版权保护的注意义务。 (如有侵权,欢迎举报) |
|
京ICP备16021002号-2 京B2-20170662号
京公网安备 11010802022788号
论坛法律顾问:王进律师
知识产权保护声明
免责及隐私声明