我有一张近50万张唱片的桌子。这是一个用户将添加特定记录的地方,在本例中,它是一个优惠券。当它被添加时,它有一个正的“1”值,但是当这个优惠券被使用时,它得到的是一个“-1”值。还有一个场景,如果使用的优惠券被返回,它将在我的系统中无效,并将值更改为“1”。
这是一个简化的结构:
CouponID CouponVendorID CouponValue CouponQty Action Barcode
1 117 25.00 1 Add 11112
2 117 -25.00 -1 Use 11112
3 117 25.00 1 Void 11112
4 117 17.00 1 Add 33331
5 117 90.00 1 Add 44441
6 117 5.00 1 Add 42424
7 117 -5.00 -1 Use 42424
所以我要做的是找到所有的卡(Couponid会做),因为我还有一张有效的优惠券。
我可以通过这个查询获得有效优惠券的正确计数(couponqty)
select 'Avail'= sum(couponQty) from tblA where CouponVendorID = 117
但是,我很难找到详细的记录来显示哪些优惠券实际上包含在有效优惠券的计数中。有什么想法吗?
预期最终结果:
CouponID CouponVendorID CouponValue CouponQty Action Barcode
1 117 25.00 1 Add 11112
4 117 17.00 1 Add 33331
5 117 90.00 1 Add 44441
Couponid=1,被添加,然后使用,然后作废,所以它仍然有效。couponid=4仅添加,从未使用,与couponid=5相同。