查询以仅拉出那些在列中没有相应负值的记录

时间:2018-10-02 15:26:52

标签: sql sql-server

我有一张包含近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

但是,我很难找到详细记录,向我显示COUNT个有效优惠券中实际上包含了哪些CouponID。有想法吗?

所需的最终结果:

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相同。

1 个答案:

答案 0 :(得分:0)

这就是我想出的办法。

char parenthese[n];