题目:
(1).前置条件:
有以下数据集c和e,表查询结果如下图所示。
数据集c表为:test_medicine_buy
数据集e表为:test_medicine_sold
test_medicine_buy表数据:
test_medicine_sold表数据:
(2).题目要求:
如上图的数据集c和e,某医院系统卖给患者阿莫西林X数量后去下购进记录的库存,购进记录可能是零散的。
现在按 iilszh 排序,优先 iilszh 小的,依次下库存如何得到类似下面预期结果的结果集。
预期结果:
解题思路:
(1). 子查询a, 按照 spmc 药品名称进行分组,按 iilszh 正序排列,求得至当前记录的累计 gjsl
查询结果如下:
iilszh spmc gjsl cum_gjsl
1 阿莫西林胶囊 20 20
2 阿莫西林胶囊 50 70
3 阿莫西林胶囊 40 110
4 阿莫西林胶囊 30 140
5 人血白蛋白 120 120
6 人血白蛋白 80 200
7 人血白蛋白 100 300
(2). 子查询c 为子查询a 与数据集e 在 join 后的结果
查询结果如下:
iilszh spmc gjsl cum_gjsl fysl
1 阿莫西林胶囊