根据不同的TRANS_TYPE,得到不同的结果值,注意可能同一天有多次处理

liangbing88 2018-06-27 02:47:21
源表:

需求结果:


根据不同的TRANS_TYPE,得到不同的结果值TTL_QTY。
...全文
179 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangbing88 2018-07-17
  • 打赏
  • 举报
回复
引用 8 楼 shinger126 的回复:
[quote=引用 7 楼 liangbing88 的回复:]
[quote=引用 6 楼 shinger126 的回复:]
SELECT ORG_ID,CUST_NUM,TRANS_TYPE,TRANSACTION_DATE,QUANTITY,
TTL_QTY=(SELECT SUM(CASE WHEN B.TRANS_TYPE='REC' THEN -B.QUANTITY ELSE B.QUANTITY END) FROM TABLE B
WHERE B.ORG_ID=A.ORG_ID AND B.CUST_NUM=A.CUST_NUM AND B.TRANSACTION_DATE<=A.TRANSACTION_DATE)
FROM TABLE A


如何通过存储过程方式实现?[/quote]
存储过程仅仅是输出这个结果么,要输入参数吗?[/quote]

是有参数需要输入的
liangbing88 2018-06-28
  • 打赏
  • 举报
回复
引用 6 楼 shinger126 的回复:
SELECT ORG_ID,CUST_NUM,TRANS_TYPE,TRANSACTION_DATE,QUANTITY,
TTL_QTY=(SELECT SUM(CASE WHEN B.TRANS_TYPE='REC' THEN -B.QUANTITY ELSE B.QUANTITY END) FROM TABLE B
WHERE B.ORG_ID=A.ORG_ID AND B.CUST_NUM=A.CUST_NUM AND B.TRANSACTION_DATE<=A.TRANSACTION_DATE)
FROM TABLE A


如何通过存储过程方式实现?
shinger126 2018-06-28
  • 打赏
  • 举报
回复
引用 7 楼 liangbing88 的回复:
[quote=引用 6 楼 shinger126 的回复:]
SELECT ORG_ID,CUST_NUM,TRANS_TYPE,TRANSACTION_DATE,QUANTITY,
TTL_QTY=(SELECT SUM(CASE WHEN B.TRANS_TYPE='REC' THEN -B.QUANTITY ELSE B.QUANTITY END) FROM TABLE B
WHERE B.ORG_ID=A.ORG_ID AND B.CUST_NUM=A.CUST_NUM AND B.TRANSACTION_DATE<=A.TRANSACTION_DATE)
FROM TABLE A


如何通过存储过程方式实现?[/quote]
存储过程仅仅是输出这个结果么,要输入参数吗?
shinger126 2018-06-27
  • 打赏
  • 举报
回复
SELECT ORG_ID,CUST_NUM,TRANS_TYPE,TRANSACTION_DATE,QUANTITY,
TTL_QTY=(SELECT SUM(CASE WHEN B.TRANS_TYPE='REC' THEN -B.QUANTITY ELSE B.QUANTITY END) FROM TABLE B
WHERE B.ORG_ID=A.ORG_ID AND B.CUST_NUM=A.CUST_NUM AND B.TRANSACTION_DATE<=A.TRANSACTION_DATE)
FROM TABLE A
liangbing88 2018-06-27
  • 打赏
  • 举报
回复
引用 4 楼 shinger126 的回复:
[quote=引用 3 楼 liangbing88 的回复:]
[quote=引用 2 楼 shinger126 的回复:]
总得有个计算规则吧


根据ORG_ID,ITEM,CUST_NUM,TRANSACTION_DATE分组,首笔记录(trans_date最早)为ttl_qty对于QUANTITY,即QUANTITY赋值给ttl_qty,之后当trans_type=issue时, 前一笔ttl_qty输入 + 本次输入=ttl_qty,当trans_type=rec是,前一笔ttl_qty输入 - 本次输入=ttl_qty。[/quote]
就是计算累计值么?同一天累计还是不分日期进行累计?[/quote]

是累计值,而且是每一笔记录都需要累计。
shinger126 2018-06-27
  • 打赏
  • 举报
回复
引用 3 楼 liangbing88 的回复:
[quote=引用 2 楼 shinger126 的回复:]
总得有个计算规则吧


根据ORG_ID,ITEM,CUST_NUM,TRANSACTION_DATE分组,首笔记录(trans_date最早)为ttl_qty对于QUANTITY,即QUANTITY赋值给ttl_qty,之后当trans_type=issue时, 前一笔ttl_qty输入 + 本次输入=ttl_qty,当trans_type=rec是,前一笔ttl_qty输入 - 本次输入=ttl_qty。[/quote]
就是计算累计值么?同一天累计还是不分日期进行累计?
liangbing88 2018-06-27
  • 打赏
  • 举报
回复
引用 2 楼 shinger126 的回复:
总得有个计算规则吧


根据ORG_ID,ITEM,CUST_NUM,TRANSACTION_DATE分组,首笔记录(trans_date最早)为ttl_qty对于QUANTITY,即QUANTITY赋值给ttl_qty,之后当trans_type=issue时, 前一笔ttl_qty输入 + 本次输入=ttl_qty,当trans_type=rec是,前一笔ttl_qty输入 - 本次输入=ttl_qty。
shinger126 2018-06-27
  • 打赏
  • 举报
回复
总得有个计算规则吧
二月十六 版主 2018-06-27
  • 打赏
  • 举报
回复
TTL_QTY怎么计算的?

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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